Memory device and operating method thereof
By introducing a power management unit and a power consumption profile table into the storage device, and adjusting the operating sequence according to the power consumption characteristics of each memory device, the problem of unbalanced power management in the prior art is solved, and more efficient power use and stable equipment operation is achieved.
Patent Information
- Application Number
- CN202410949989.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-12-26
- Filing Date
- 2024-07-16
- Publication Date
- 2025-06-27
AI Technical Summary
Existing storage devices are difficult to effectively manage power under low power requirements, resulting in unbalanced power consumption and affecting the efficient operation of the equipment.
By introducing a power management unit into the storage device, the power consumption profile table is used to determine the operation sequence according to the power consumption characteristics of each memory device, and dynamic adjustment of the priority and operation sequence of multiple commands is achieved.
It effectively reduces the total power consumption of the storage device, improves the operating efficiency within the limited power budget, and ensures the stable operation of the equipment.
Smart Images

Figure CN120220745A_ABST
Abstract
Description
[0001] This application claims the priority and benefit of Korean Patent Application No. 10-2023-0191462, filed with the Korean Intellectual Property Office on December 26, 2023, the entire content of which is incorporated herein by reference. Technical Field
[0002] The present disclosure relates to a storage device and an operation method thereof. Background Art
[0003] A storage device is a memory device that can record data and read the data when necessary. The storage device may include a non-volatile memory (NVM) and a volatile memory (VM). In the non-volatile memory (NVM), the stored data is not damaged even without power supply. In the volatile memory (VM), if the power supply is not provided, the stored data is damaged.
[0004] Meanwhile, recently, with the high capacity and higher integration of storage devices, the demand for low power is increasing, and power management of storage devices has become an important issue. Summary of the Invention
[0005] Generally, according to some aspects, the present disclosure relates to a storage device and an operation method thereof that perform power management based on die characteristics.
[0006] Generally, according to some aspects, the present disclosure relates to a storage device and an operation method thereof for effectively operating a memory device within a limited power budget.
[0007] An example storage device may include: a plurality of memory devices; and a storage controller configured to: receive a plurality of commands for operating the plurality of memory devices from an external host device, and determine an operation order of the plurality of memory devices based on a power consumption profile table, the power consumption profile table including power information indicating power consumption of each of the plurality of memory devices.
[0008] An example operation method of the storage device may include: receiving a plurality of commands from an external host device and determining priorities of the plurality of commands; comparing real-time power consumption of the plurality of memory devices with a power budget of the storage device and obtaining marginal power of the storage device; and determining an operation order of the plurality of commands based on a power consumption profile table, the power consumption profile including marginal power and power information indicating power consumption of each of the plurality of memory devices.
[0009] An example storage system may include: a power supply that supplies a power voltage from an external input; a plurality of non-volatile memory devices configured to store a plurality of data input from the outside; and a storage controller configured to: create a power consumption profile table based on the characteristics of the plurality of non-volatile memory devices, the power consumption profile table representing the power consumption of the plurality of non-volatile memory devices, and when receiving a plurality of commands indicating to save the plurality of data from the outside, determine an operation order of the plurality of non-volatile memory devices based on a comparison result between the power voltage and the real-time power consumption of the plurality of non-volatile memory devices and the power consumption profile table. Description of the Drawings
[0010] Figure 1 is a schematic block diagram of an example storage system.
[0011] Figure 2 is a schematic block diagram of an example storage device.
[0012] Figure 3 is a diagram for explaining an example power management unit.
[0013] Figure 4 is a flowchart for explaining an operation method of a power table generator.
[0014] Figure 5 is a diagram for explaining an operation method of a power table generator.
[0015] Figure 6 is a diagram showing an exemplary power consumption profile table generated by a power table generator.
[0016] Figure 7 is a flowchart for explaining an operation method of a power table generator.
[0017] Figure 8 is a diagram for explaining a scheduler in an example power management unit.
[0018] Figure 9 is a flowchart for explaining an operation method of an example power budget calculator.
[0019] Figure 10 is a flowchart for explaining an operation method of an example scheduler.
[0020] Figure 11 is a diagram for explaining an operation method of an example scheduler.
[0021] Figure 12 is a diagram for explaining an operation method of an example scheduler.
[0022] Figure 13 is a diagram for explaining an operation method of an example scheduler.
[0023] Figure 14 is a view showing a wafer including a plurality of dies.
[0024] Figure 15 exemplarily shows an exemplary storage system including a plurality of dies according to Figure 14 a view of the storage system. Detailed Description
[0025] In the following detailed description, only specific embodiments of the present disclosure have been shown and described by way of illustration. As those skilled in the art will recognize, the described embodiments can be modified in various different ways without departing from the spirit or scope of the present disclosure.
[0026] Accordingly, the drawings and the specification are to be regarded as illustrative rather than restrictive in nature. Throughout the specification, the same reference numerals denote the same elements. In the flowcharts described with reference to the drawings in this specification, the order of operations may be changed, various operations may be combined, specific operations may be divided, and specific operations may not be performed.
[0027] In addition, unless an explicit expression such as "one" or "single" is used, any expression written in the singular may be construed as singular or plural. Terms including ordinal numbers (such as first, second, etc.) will only be used to describe various components and should not be construed as limiting these components. These terms are only used to distinguish one component from other components.
[0028] Figure 1 is a schematic block diagram of a storage system.
[0029] The storage system 100 may be a mobile system (such as a portable communication terminal (mobile phone), a smart phone, a tablet personal computer (PC), a wearable device, a healthcare device, or an Internet of Things (IoT) device). However, the storage system 100 is not limited thereto, and Figure 1 the storage system 100 of may be a personal computer, a laptop computer, or an automotive device (such as navigation, a black box, and automotive electronic devices, etc.).
[0030] The storage system 100 may include a storage device 101 and a memory 102.
[0031] The storage device 101 can be manufactured as one of various types of storage devices according to a host interface representing a transmission protocol with a host device. For example, the storage device 101 can be implemented as a solid state drive (SSD), a smart SSD, an embedded multimedia card (eMMC), an embedded universal flash storage (UFS) memory device, a UFS memory card, a compact flash (CF), a secure digital (SD) card, a micro SD (micro secure digital) card, a mini SD (mini secure digital) card, an xD (extreme digital) card, a memory stick, or a similar form.
[0032] The storage device 101 may include a storage controller 110 and a non-volatile memory device 120. The storage device 101 can store data DATA or process data DATA according to a request from the host device.
[0033] The storage controller 110 can control the operation of the storage device 101. For example, the storage controller 110 can provide an address (ADDR), a command (CMD), etc. to the non-volatile memory device 120 according to a request from the host device. In other words, the storage controller 110 provides a signal to the non-volatile memory device 120 to write (program) data DATA into the non-volatile memory device 120 or read data DATA from the non-volatile memory device 120.
[0034] In some embodiments, the storage controller 110 may include a power management unit 111, a host interface 112, a processor 113, an SRAM 114, and a memory interface 115.
[0035] In some embodiments, the power management unit 111 can read characteristic information affecting the power consumption of the non-volatile memory device 120 from the non-volatile memory device 120, and can generate a power consumption profile table based on the characteristic information of the non-volatile memory device 120. In some embodiments, the power management unit 111 can generate a power consumption profile table including power information consumed when the non-volatile memory device 120 operates according to the characteristic information of the non-volatile memory device 120.
[0036] In some embodiments, the power management unit 111 can obtain the real-time power consumption of the non-volatile memory device 120, and compare the power budget of the storage device 101 with the real-time power consumption of the non-volatile memory device 120. In some embodiments, the power management unit 111 can calculate the marginal power of the storage device 101 by comparing the power budget of the storage device 101 and the real-time power consumption of the non-volatile memory device 120.
[0037] In some embodiments, the storage controller 110 may send multiple commands to the non-volatile memory device 120 according to requests from the host device. The storage controller 110 may determine the priorities of the multiple commands. In some embodiments, the power management unit 111 may determine the operation order of the non-volatile memory device 120 based on the power consumption profile table. In some embodiments, the power management unit 111 may also consider the marginal power of the storage device 101 and a predetermined scheduling policy to determine the operation order of the non-volatile memory device 120. The power management unit 111 may change the operation order of the multiple commands based on the predetermined scheduling policy, according to the power consumption profile table and the marginal power of the non-volatile memory device 120.
[0038] The host interface 112 may send and receive packets with the host device. Packets sent from the host device to the host interface 112 may include commands or data to be written to the non-volatile memory device 120. Packets sent from the host interface 112 to the host device may include responses to commands or data read from the non-volatile memory device 120. Exemplarily, the host interface 112 may communicate with the host device by using one of standard transport protocols (such as, Universal Serial Bus (USB), Universal Flash Storage (UFS), Multimedia Card (MMC), Parallel Advanced Technology Attachment (PATA), Serial Advanced Technology Attachment (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), Peripheral Component Interconnect (PCI), PCI Express (PCI-E)).
[0039] The processor 113 may control the overall operation of the storage controller 110. The processor 113 may operate various firmware / software required for the non-volatile memory device 120. For example, the processor 113 may operate the flash translation layer to manage the mapping table that defines the relationship between the logical address and the physical address of the non-volatile memory device 120.
[0040] The processor 113 may process requests received from the host device. The processor 113 may operate instructions or algorithms (i.e., software) loaded in the SRAM 114 in the form of code to process requests received from the host device, and may control internal functional blocks and the non-volatile memory device 120. The processor 113 may include a central processing unit (CPU), a controller, or a custom semiconductor (Application Specific Integrated Circuit, ASIC). In some embodiments, the SRAM 114 may receive the power consumption profile table from the power management unit 111 and store the power consumption profile table.
[0041] The non-volatile memory device 120 may include a plurality of dies or a plurality of chips including a memory cell array. For example, the non-volatile memory device 120 may include a plurality of die groups, and each of the plurality of die groups may include a plurality of dies. In some embodiments, the non-volatile memory device 120 may further include a plurality of channels, and each of the plurality of channels includes a plurality of dies.
[0042] The non-volatile memory device 120 may include a NAND flash memory. In another embodiment, the non-volatile memory device 120 may be an electrically erasable programmable read-only memory (EEPROM), a phase change random access memory (PRAM), a resistive RAM (ReRAM), a resistive random access memory (RRAM), a nano floating gate memory (NFGM), a polymer random access memory (PoRAM), a magnetic random access memory (MRAM), a ferroelectric random access memory (FRAM), or a similar memory.
[0043] The memory 102 can be used as the main memory device of the storage system 100, and may include volatile memory (such as SRAM and / or DRAM), but may also include non-volatile memory (such as flash memory). The memory 102 can be connected to the storage device 101 via the bus 103. In some embodiments, the memory 102 may receive a power consumption profile table from the storage device 101 and store the power consumption profile table.
[0044] Meanwhile, in Figure 1 one storage device 101 is shown as including one non-volatile memory device 120, but the present disclosure is not limited thereto, and the storage device 101 may include a plurality of non-volatile memory devices.
[0045] Figure 2 is a schematic block diagram of a storage device.
[0046] The storage device 200 may include a storage controller 210 and a non-volatile memory device 220. The non-volatile memory device 220 may include a plurality of die groups DG1,..., DGm. The plurality of die groups DG1,..., DGm may each include a plurality of dies DIE. The channels CH1,..., CHm for connecting to the storage controller 210 may be provided in a number corresponding to the number of the plurality of die groups DG1,..., DGm, but are not limited thereto. One channel may be shared by a plurality of dies DIE. The die DIE may be a NAND flash memory device.
[0047] In some embodiments, the power consumed by the plurality of dies DIE may be different. Specifically, the power consumption of the plurality of dies DIE may be different according to the characteristics of each die DIE. The characteristics of the die DIE that affect the power consumption of the die DIE may include process variables, temperature, voltage, etc.
[0048] Here, the process variable is a variable of the process for manufacturing the DIE, and can be determined based on the process deviation information of the DIE.
[0049] According to an embodiment, the storage controller 210 can generate a power consumption profile table including the power consumption of each die based on the characteristics of each die, and effectively manage the power budget of the storage device based on the power consumption profile table and the marginal power of the storage device.
[0050] Figure 3 is a diagram for explaining an example power management unit. In some embodiments, the storage controller (refer to Figure 1 110 in) may include a power management unit 300 for effectively managing the power budget of the storage device.
[0051] In some embodiments, the power management unit 300 may include a power meter generator 310 and a scheduler 320.
[0052] In some embodiments, the power meter generator 310 may generate a power consumption profile table including power information representing the power consumption of a plurality of dies connected to the storage controller 110. The specific operation method of the power meter generator 310 will be referred to together with Figure 4 to describe.
[0053] In some embodiments, the scheduler 320 may determine the operation order of a plurality of dies based on the power consumption profile table. The specific embodiments of the scheduler will be referred to later with Figures 8 to 12 to describe.
[0054] Figure 4 is a flowchart for explaining the operation method of the power meter generator.
[0055] In some embodiments, the power meter generator 310 checks whether a previously generated power consumption profile table exists (S410), and if the previously generated power consumption profile table does not exist, the power meter generator 310 obtains the characteristic information (or attribute information) of the die for generating the power consumption profile table (S430).
[0056] Refer to together Figure 5 , Figure 5 is a diagram for explaining the operation method of the power meter generator. Specifically, this is a diagram for explaining how the power meter generator 310 according to an embodiment obtains the characteristic information of the die for generating the power consumption profile table.
[0057] In some embodiments, the die may include a memory cell array 500. The memory cell array 500 may include a plurality of memory blocks BLK1, ……, BLKn. Each of the plurality of memory blocks BLK1, ……, BLKn may include a plurality of memory cells. The plurality of memory cells may store data DATA received from the outside based on an external control signal.
[0058] In some embodiments, some of the plurality of memory blocks BLK1, ……, BLKn of the memory cell array 500 may store general user data, and it may store the security data 510 of the die. Among the plurality of memory blocks BLK1, ……, BLKn of the memory cell array 500, the block BLK2 storing the security data 510 may be referred to as a security block. Here, although the security data 510 is shown as being stored in some of the plurality of memory blocks, it is not limited thereto, and the security data 510 may be stored in some areas of the memory cell array 500 or in internal logic (such as, an electric fuse). In addition, the security data 510 may be data that can be programmed only once. The security data 510 may be programmed only once, and once programmed, the data may be secure from any external manipulation.
[0059] In some embodiments, the security data 510 may include the ID of the die (that is, the memory device), the batch ID, and the corner value. Specifically, the die ID may include the manufacturer's serial number, the manufacturing date, etc., and the batch ID may represent the ID assigned to the wafer during the manufacturing process of the die. The corner value 520 is characteristic information about the die, and may be a process variable of the die DIE. In some embodiments, the power table generator 310 may obtain the corner value 520 as the characteristic information of the die from the memory cell array 500 inside the die, and use the corner value 520 to generate a power consumption profile table.
[0060] In some embodiments, the corner value 520 may be one of the characteristics of the die that affects the power consumption of the die. Specifically, the corner value 520 may be determined according to the characteristics of the P-type / N-type transistors constituting the memory cells inside the die. For example, for the P-type / N-type transistors constituting the memory cells, the P-type transistors may be fast, slow, or nominal, and the N-type transistors may be fast, slow, or ordinary. That is, the corner value 520 may be determined according to the operation speed of the memory cells, which is differently determined according to the characteristics of the P-type / N-type transistors constituting the memory cells. At the process stage of mass-producing the die, the corner value 520 of the die may be determined according to the characteristics of the cells inside the die. Here, the corner value is described as a process variable, but the corner value is not limited thereto, and the power table generator 310 may also consider various characteristics that affect the power consumption of the die.
[0061] In some embodiments, the power meter generator 310 may measure and obtain the operation time of each die as the die characteristic information. For example, according to the characteristics of P-type / N-type transistors that make up the memory cells inside the die, if both P-type / N-type transistors are fast, there is a tendency for fast operation speed and high power consumption. On the contrary, if both P-type / N-type transistors are slow, there is a tendency for slow operation speed and low power consumption. Therefore, the power meter generator 310 may obtain the operation time as the die characteristic information.
[0062] In some embodiments, the power meter generator 310 may generate a power consumption profile table (S440) based on the die characteristic information.
[0063] Refer together to Figure 6 , Figure 6 is a diagram showing an example power consumption profile table generated by the power meter generator.
[0064] In some embodiments, the power consumption profile table 600 may include power information consumed by each die (refer to Figure 2 in the DIE in Figure 2 connected to a plurality of die groups (refer to DG1,..., DGm in Figure 2 connected to the storage controller (refer to 210 in
[0065] In some embodiments, the power information Pwr may be a value generated based on the die characteristic information. For example, the power information Pwr may be a value generated based on the die corner value or the die operation time. In some embodiments, the power meter generator 310 may obtain the power information Pwr of the die by calculating according to a predetermined calculation method based on the die characteristic information. Here, the predetermined calculation method may vary according to each manufacturer or each product of the die (that is, the memory device). In some embodiments, the power information Pwr may also consider other characteristic information of the die.
[0066] In some implementations, the power meter generator 310 may generate a power consumption profile table 600 and store the generated power consumption profile table 600 in the SRAM (refer to 114 in Figure 1 110) in the storage controller (refer to Figure 1 ). Optionally, the power meter generator 310 may generate a power consumption profile table 600 and store the generated power consumption profile table 600 in an external memory (refer to 102 in Figure 1 ).
[0067] In some embodiments, if there is a power consumption profile table that has already been created in the SRAM 114 of the storage controller 110 or the external memory 102, the power meter generator 310 does not regenerate the power consumption profile table. Instead, the power meter generator 310 may read the power consumption profile table existing in the SRAM 114 or the external memory 102 (S420).
[0068] Figure 7 is a flowchart for explaining an operation method of the power meter generator. Specifically, the power consumption of the die may change according to various factors. Therefore, Figure 7 is a flowchart for explaining how the power meter generator corrects the power information Pwr in the power consumption profile table by considering external factors.
[0069] In some embodiments, the power meter generator may detect a change in an external factor (S710). Here, the external factor is a factor that affects the power consumption of the die and may include the ambient temperature, the access frequency of the die, etc. In one embodiment, the power meter generator may detect a change in an external factor that affects the power consumption of the die by monitoring the external factor at a predetermined time period. Optionally, the power meter generator may continuously detect a change in the external factor through a sensor to detect a change in the external factor.
[0070] In one embodiment, the power meter generator may monitor a change in the ambient temperature of the die. For example, when the ambient temperature of the die increases, the power consumption of the die may increase, and when the ambient temperature of the die decreases and approaches the normal temperature (or room temperature), the power consumption of the die may decrease. The power meter generator may monitor the ambient temperature of the die at a predetermined time period. Optionally, the power meter generator may continuously monitor a change in the ambient temperature through a sensor (e.g., a temperature sensor) to detect a change in the ambient temperature of the die.
[0071] In some embodiments, a power meter generator may monitor the access frequency of a die. The access frequency of the die may represent the number of read operations / write operations performed on the die (i.e., the memory device). For example, when read operations / write operations on the memory device occur frequently, due to the heat generated in the circuits inside the memory device, the temperature may increase and the power consumption of the memory device may increase. The power meter generator may monitor the access frequency of the die at a predetermined time period or continuously.
[0072] In some embodiments, the power meter generator may correct a power consumption profile table (S720). Specifically, the power meter generator may correct the power information Pwr in the power consumption profile table based on changes in external factors to obtain a more accurate power consumption of the die.
[0073] In some embodiments, the power meter generator may correct the power information in the power consumption profile table based on changes in external factors according to a predetermined calculation method. For example, when the external temperature of the die increases, the power meter generator may monitor the external temperature and correct the power information in the power consumption profile table according to a predetermined calculation method. Optionally, when the access frequency of the die increases, the power meter generator may monitor the access frequency and correct the power information in the power consumption profile table according to a predetermined calculation method. Here, the predetermined calculation method may vary according to each manufacturer or each product of the die (i.e., the memory device). Here, the ambient temperature and the access frequency of the die are described as examples of external factors, but the examples of external factors are not limited thereto, and the power meter generator may also consider various external factors that affect the power consumption of the die.
[0074] Figure 8 is a diagram for explaining a scheduler inside a power management unit.
[0075] In some embodiments, the scheduler 320 may determine the operation order of multiple dies based on the power consumption profile table. Specifically, the storage controller may send multiple commands to multiple dies according to a request from an external host device. At this time, the die to execute the command may be determined according to the priority of the multiple commands. In some embodiments, the scheduler 320 may change the operation order of multiple commands based on the power consumption profile table.
[0076] In some embodiments, the scheduler 320 may include a power budget calculator 321. The power budget calculator 321 may calculate marginal power based on real-time power consumption and the power budgets of multiple dies. Refer to Figure 9 Describe the specific operation method of the power budget calculator 321.
[0077] Figure 9 is a flowchart for explaining the operation method of the power budget calculator.
[0078] In some embodiments, the power budget calculator 321 may obtain the real-time power consumption of the die (S910). The power budget calculator may obtain the real-time power consumption of each of the multiple dies connected to the storage controller. The power budget calculator may determine the die currently in operation among the multiple dies connected to the storage controller, and may obtain the real-time power consumption of the die currently in operation.
[0079] In some embodiments, the power budget calculator may compare the real-time power consumption of the die with the power budget of the storage device (S920), and calculate the marginal power of the storage device based on the comparison result (S930). In some embodiments, the power budget calculator may determine the value obtained by subtracting the real-time power consumption of the current die from the power budget of the storage device as the marginal power of the storage device, but it is not limited thereto.
[0080] In some embodiments, the scheduler 320 may obtain the marginal power from the power budget calculator, and determine the operation order of the multiple dies based on the power consumption profile table.
[0081] Figure 10 is a flowchart for explaining the operation method of the scheduler. Figures 11 to 13 is a diagram for explaining the operation method of the scheduler.
[0082] In some embodiments, the scheduler may obtain the priority of the command (S1010). In some embodiments, the storage controller may determine the operation order of the commands based on the priority of the commands. Specifically, the storage controller may receive multiple commands according to a request from an external host device, and determine the priority of the multiple commands. The priority of each command may be determined according to the operation type of the command, the type of data, the importance of the data, etc. In some embodiments, the priorities of some of the multiple commands may be the same. Referring together Figure 11 , the priorities of the multiple commands CMD1, CMD2, and CMD3 may be the same. The storage controller may consider the operation type of the commands, the type of data, and the importance of the data to determine that the priorities of the multiple commands CMD1, CMD2, and CMD3 are the same.
[0083] In some embodiments, the scheduler may check the power consumption profile table of the die (S1020). Specifically, the scheduler may check the power consumption profile table based on the priorities of the multiple commands to obtain the power information of the multiple dies that will execute the operations corresponding to the commands. Referring together Figure 11, multiple commands CMD1, CMD2, and CMD3 can be commands for performing specific operations on a specific die. For example, the first command CMD1 can be a command for performing a read operation on the first die DIE0 connected to the first channel CH0, and the second command CMD2 can be a command for performing a read operation on the second die DIE1 connected to the second channel CH1, but it is not limited thereto. In some embodiments, the scheduler can check the power consumption profile table of die 1113 corresponding to the multiple commands CMD1, CMD2, and CMD3. In some embodiments, the scheduler can obtain power information 1115 representing the power consumption when the corresponding die operates from the power consumption profile table of die 1113 corresponding to the multiple commands CMD1, CMD2, and CMD3.
[0084] In some embodiments, the scheduler can determine the operation order (or action order) of multiple dies (S1030). Specifically, the scheduler can determine the operation order of multiple dies based on the power consumption of the dies. In some embodiments, the scheduler can also consider a predetermined scheduling policy and marginal power when determining the operation order of multiple dies.
[0085] Referring to Figure 11 , in some embodiments, the scheduler can determine the operation order of multiple dies 1113 based on the power information 1115 representing the power consumption of the multiple dies 1113. For example, the scheduler can determine to first perform the operation of the die with the lowest power consumption (e.g., the first die DIE0 connected to the first channel CH0) among the multiple dies 1113 corresponding to multiple commands 1111 with the same priority. Or, based on the power consumption 1115 of the multiple dies 1113, the scheduler can determine to first perform the operation of the die with the highest power consumption (e.g., the third die DIE2 connected to the fourth channel CH3) among the multiple dies 1113 corresponding to multiple commands 1111 with the same priority.
[0086] In some embodiments, the scheduler can also consider marginal power according to a predetermined scheduling policy to determine the operation order of multiple dies 1113. Specifically, among multiple dies corresponding to multiple commands with the same priority, it can be determined to first operate the die that consumes less power than the marginal power.
[0087] In some embodiments, there may be a die that consumes power less than the marginal power. For example, if the marginal power of a storage device is a first marginal power (marginal power 1; 1117), among a plurality of dies 1113 corresponding to a plurality of commands 1111, there may be only one die that consumes power less than the first marginal power 1117 (e.g., the second die DIE1 connected to the first channel CH0). The scheduler may determine to first execute the operation of the second die DIE1 connected to the first channel CH0 according to a predetermined scheduling policy.
[0088] In some embodiments, there may be a plurality of dies that consume power less than the marginal power. For example, if the marginal power of a storage device is a second marginal power (marginal power 2; 1119), among a plurality of dies 1113 corresponding to a plurality of commands 1111, there may be a plurality of dies that consume power less than the second marginal power 1119 (e.g., the second die DIE1 connected to the first channel CH0, the second die DIE1 connected to the second channel CH1, and the third die DIE2 connected to the fourth channel CH3). According to a predetermined scheduling policy, the scheduler may determine to first execute the operation of the die with a higher power consumption among the dies that consume power less than the second marginal power 1119 (e.g., the third die DIE2 connected to the fourth channel CH3), but it is not limited thereto. In some embodiments, if the marginal power of a storage device is the second marginal power 1119, according to a predetermined scheduling policy, the scheduler may determine to first execute the operation of the die with a lower power consumption among the dies that consume power less than the second marginal power 1119 (e.g., the second die DIE1 connected to the first channel CH0).
[0089] In some embodiments, there may be no die that consumes power less than the marginal power. Reference will be made to Figure 12 Describe the operation method for such a scheduler.
[0090] Figure 12 is a diagram for explaining the operation method of a scheduler according to an additional embodiment.
[0091] In some embodiments, the scheduler may obtain the operation order of commands based on the priority of the commands. In some embodiments, the priorities of a plurality of commands may be different. Reference will be made to Figure 12, the priorities of the first command CMD1 and the second command CMD2 among multiple commands may be the same as each other, and the priority of the third command CMD3 among multiple commands may be lower than the priorities of the first command CMD1 and the second command CMD2. For example, among multiple commands, the first command CMD1 and the second command CMD2 may be commands for performing the same operation, and the third command CMD3 among multiple commands may be a command for performing an operation different from the first command CMD1 and the second command CMD2, but it is not limited thereto. Hereinafter, the first command CMD1 and the second command CMD2 are referred to as the first priority commands 1211, and the third command CMD3 is referred to as the second priority command 1221.
[0092] In some embodiments, the scheduler may check the power consumption profile table and obtain power information 1215 representing the power consumption of the die 1213 that will perform the operation corresponding to the first priority command 1211. In some embodiments, the scheduler may determine that there is no die among the power information 1215 of the die 1213 that will perform the operation corresponding to the first priority command 1211 that consumes power less than the marginal power 1217.
[0093] In some embodiments, the scheduler may determine the operation order of multiple dies based on the multiple die power information. In some embodiments, the scheduler may consider a predetermined scheduling policy to determine the operation order of multiple dies. In some embodiments, the predetermined scheduling policy may vary according to quality of service (QoS) conditions. For example, high-priority operations may be executed first, or operations of dies with low power consumption may be executed first.
[0094] In some embodiments, if it is determined based on the power information 1215 of the die 1213 that there is no die that consumes power less than the marginal power 1217, the scheduler may wait according to a predetermined scheduling policy until the marginal power 1217 exceeds one of the power information 1215. For example, the marginal power 1217 may increase as the currently executing operation ends or is aborted. In some embodiments, the scheduler compares the power consumption information of multiple memory devices (e.g., multiple dies) with the marginal power of the storage device based on the power consumption profile table, determines that the multiple memory devices are consuming power greater than the marginal power, and waits until the marginal power consumption exceeds the power consumption information of one or more of the multiple memory devices. In some embodiments, the scheduler compares the power consumption information of multiple memory devices (e.g., multiple dies) with the marginal power of the storage device based on the power consumption profile table, determines that the power information of the multiple memory devices is greater than the marginal power, and waits until the marginal power consumption exceeds the power consumption information of one or more of the multiple memory devices.
[0095] In addition, in some embodiments, if it is determined based on the power information 1215 of the die 1213 that there is no die consuming power less than the marginal power 1217, the scheduler may check the power consumption profile table of the die 1223 that will perform the operation corresponding to the second-priority command 1221 according to a predetermined scheduling policy, and obtain the power information 1225 representing the power consumption of the die 1223. In some embodiments, the scheduler may determine that the power information 1225 of the die 1223 that will perform the operation corresponding to the second-priority command 1221 is less than the marginal power 1217, and determine that the second-priority command 1221 will be executed first. In some embodiments, the scheduler compares the power information of multiple memory devices with the marginal power of the storage device based on the power consumption profile table, determines that the first plurality of memory devices among the multiple memories are consuming power less than the marginal power, and determines the operation order of the first plurality of memory devices. The operation order of the first plurality of memory devices is in the order from the maximum real-time power consumption to the minimum real-time power consumption among the first plurality of memory devices. In some embodiments, the scheduler compares the power information of multiple memory devices with the marginal power of the storage device based on the power consumption profile table, determines that the power information of the first plurality of memory devices among the multiple memory devices is less than the marginal power, and determines the operation order of the first plurality of memory devices. The operation order of the first plurality of memory devices is in the order from the maximum power consumption to the minimum power consumption among the first plurality of memory devices.
[0096] As described above, the predetermined scheduling policy may determine the operation order of the dies according to the marginal power, such that the operation of the die consuming the minimum power or the operation of the die consuming the maximum power among the dies consuming power less than the marginal power is executed first (e.g., in the operation order from the maximum power consumption to the minimum power consumption). In addition, according to the scheduling policy based on the QoS conditions, the operation order of the commands may be changed to execute the operations with high priority first or execute the operations on the dies with low power consumption first. However, the scheduling policy is not limited thereto, and there may also be various scheduling policies to effectively manage the power budget of the storage device.
[0097] Figure 13 is a flowchart showing the operation method of the scheduler.
[0098] In some embodiments, the scheduler may determine whether the real-time power consumption of the die exceeds the power budget of the storage device (S1310). Specifically, the scheduler may determine the operation order of the commands or dies according to a predetermined scheduling policy, and determine whether the real-time power consumption of the die exceeds the power budget of the storage device when performing the operation.
[0099] In some embodiments, if it is determined that the power consumption of the die (e.g., real-time power consumption) exceeds the power budget of the storage device, the scheduler may determine whether to abort other operations that are currently being executed (S1320). In addition, the scheduler may wait until the other operations that are currently being executed are aborted. If the operations continue to be executed despite the power consumption of the die exceeding the power budget of the storage device, it may cause various problems (such as errors in the data stored in the die (i.e., in the memory device)).
[0100] In some embodiments, if it is determined that the power consumption of the die does not exceed the power budget of the storage device, the scheduler may execute the commands according to the determined operation order (S1330). Optionally, it is also applicable when it is determined that the power consumption of the die does not exceed the power budget when other operations are terminated.
[0101] In some embodiments, the scheduler may update the real-time power consumption of the die (S1340).
[0102] Figure 14 is a diagram showing a wafer including a plurality of dies.
[0103] A wafer 1400 may produce a plurality of dies 1410, 1420, and 1430. In some embodiments, the plurality of dies 1410, 1420, and 1430 may be memory devices. In some embodiments, the plurality of dies 1410, 1420, and 1430 may be connected to the same storage controller. In some embodiments, the plurality of dies 1410, 1420, and 1430 may receive commands from the same storage controller and perform read operations / write operations, etc. based on the commands.
[0104] In some embodiments, the characteristics of each of the dies 1410, 1420, and 1430 may be different from each other. Here, die characteristics may include process variables, temperature, voltage, etc. Therefore, the power consumption of each of the dies 1410, 1420, and 1430 may be different. However, when the same margin is applied to the power consumption of the plurality of dies 1410, 1420, and 1430 generated on one wafer 1400, there is a problem of wasting the power budget for the die with low power consumption, and there is a problem that the power consumption exceeds the power budget for the die with high power consumption, thereby increasing the possibility of errors occurring during operation.
[0105] Figure 15 is an exemplary diagram showing an example storage system including a plurality of dies according to Figure 14 Referring to Figure 15 , the storage system 1500 may include a host device 1510 and a solid-state drive 1520 (hereinafter referred to as SSD), and the solid-state drive 1520 includes a non-volatile memory device (NVM) 1540 as a plurality of dies.
[0106] The SSD 1520 may include a storage controller 1530, an SRAM 1560, a non-volatile memory device 1540, a power supply 1550, a signal connector 1570, and a power connector 1580.
[0107] The non-volatile memory device 1540 may be used as a storage medium of the SSD 1520. Each of the non-volatile memory devices 1540 may be connected to the storage controller 1530 through a plurality of channels CH1, ……, CHn. One or more non-volatile memory devices may be connected to one channel. The non-volatile memory devices connected to one channel may be connected to the same signal bus and data bus. The characteristics of the non-volatile memory device 1540 may be different.
[0108] The power supply 1550 may supply the power PWR input through the power connector 1580 to the inside of the SSD 1520. The power budget of the SSD 1520 may be determined by the power PWR input via the power supply 1550.
[0109] The storage controller 1530 may exchange signals SGL with the host device 1510 through the signal connector 1570. Here, the signals SGL may include commands, addresses, data, etc. The signal connector 1570 may be composed of various types of connectors according to the interface method between the host device 1510 and the SSD 1520.
[0110] The storage controller 1530 may control all operations of the SSD 1520. The storage controller 1530 may generate power information representing the power consumption of the non-volatile memory device 1540 based on the characteristics of the non-volatile memory device 1540. In some embodiments, the power information may be stored in the SRAM 1560. The storage controller 1530 according to the embodiment may determine the operation order of the non-volatile memory device 1540 based on the power information of the non-volatile memory device 1540. By performing power management on the memory device based on the characteristics of the non-volatile memory device 1540, the storage controller 1530 according to the embodiment has the advantage of being able to effectively operate the memory device within a limited power budget.
[0111] While the present disclosure contains many specific implementation details, these should not be construed as limitations on the scope of what can be claimed. Specific features described in the context of separate embodiments in the present disclosure can also be implemented in combination in a single embodiment. Conversely, the various features described in the context of a single embodiment can also be implemented separately or in any suitable sub-combination in multiple embodiments. In addition, although the features may be described above as acting in a particular combination, in some cases one or more features from the combination can be deleted from the combination, and the combination can involve a sub-combination or a variation of the sub-combination.
[0112] While the invention has been described in connection with exemplary embodiments that are presently considered to be practical, it should be understood that the invention is not limited to the disclosed embodiments, but on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. Accordingly, those skilled in the art will understand that various modifications and other equivalent exemplary embodiments can be made to the invention. Therefore, the true technical protection scope of the invention will be defined by the claims.
Claims
1. A storage device, comprising: a plurality of memory devices, and A memory controller is configured to receive a plurality of commands for operating the plurality of memory devices from an external host device, and determine an operation order of the plurality of memory devices based on a power consumption profile table including power information indicating power consumption of each of the plurality of memory devices.
2. The storage device according to claim 1, wherein: The memory controller is configured to generate a power consumption profile table including power information according to a predetermined calculation method based on characteristic information of each of the plurality of memory devices.
3. The storage device according to claim 2, wherein: Characteristic information is stored in each of the plurality of memory devices.
4. The storage device according to claim 3, wherein: The characteristic information includes at least one of an angular value and an operation time of each of the plurality of memory devices.
5. The storage device according to claim 1, wherein: The memory controller is configured to correct the power information based on a change in an external factor affecting power consumption of each of the plurality of memory devices.
6. The storage device according to claim 5, wherein: The external factor includes at least one of an ambient temperature of each of the plurality of memory devices and an access frequency to each of the plurality of memory devices.
7. The storage device according to claim 1, wherein: The memory controller is configured to obtain a marginal power of the memory device based on the real-time power consumption of each of the plurality of memory devices and a power budget of the memory device, and the memory controller is configured to determine an operation order of the plurality of memory devices based on the marginal power and power consumption profile table.
8. The storage device according to claim 7, wherein: The storage controller is configured to: determine, based on the marginal power and power consumption profile table, that power information of a first memory device among the multiple memory devices is less than the marginal power, and determine an operation order of the multiple memory devices so that the operation of the first memory device among the multiple memory devices is executed first.
9. The storage device according to claim 7, wherein: The storage controller is configured as: comparing the power information of the plurality of memory devices with a marginal power of the memory device based on a power consumption profile table; determining that power information of the plurality of memory devices is greater than a marginal power; as well as Waiting is performed until the marginal power exceeds the power information of one or more memory devices of the plurality of memory devices.
10. The storage device according to claim 7, wherein: The storage controller is configured as: comparing the power information of the plurality of memory devices with the marginal power of the memory devices based on the power consumption profile table; determining that power information of a first plurality of memory devices among the plurality of memory devices is less than a marginal power; as well as determining an operation order of the first plurality of memory devices, The operation sequence of the first plurality of memory devices is from the highest power consumption to the lowest power consumption.
11. A method for operating a storage device, comprising: receiving a plurality of commands from an external host device and determining an operation order for each of the plurality of commands, comparing the real-time power consumption of each of the plurality of memory devices with the power budget of the memory device and obtaining the marginal power of the memory device, and An operation order of the plurality of commands is determined based on marginal power and a power consumption profile table, the power consumption profile table including power information representing power consumption of each of the plurality of memory devices.
12. The method for operating a storage device according to claim 11, further comprising: obtaining characteristic information of each of the plurality of memory devices, and A power consumption profile table is created based on characteristic information of each of the plurality of memory devices.
13. The method for operating a storage device according to claim 12, in, The steps to create a power profile table include: monitoring a change in an external factor of each of the plurality of memory devices at a predetermined time period, and The characteristic information is calculated according to a predetermined calculation method based on changes in external factors, and the power information is corrected.
14. The method for operating a storage device according to claim 12, wherein: The plurality of commands includes a first plurality of commands and a second plurality of commands, and The step of determining the operation order of the plurality of commands comprises: An operation order of the first plurality of commands is determined to be higher than an operation order of the second plurality of commands.
15. The method for operating a storage device according to claim 14, wherein: The step of determining the operation order of the plurality of commands comprises: obtaining power information of a first plurality of memory devices among the plurality of memory devices from a power consumption profile table, and performing operations according to the first plurality of commands, and The marginal power is compared to the power information of the first plurality of memory devices.
16. The method for operating a storage device according to claim 15, further comprising: determining that power information of a first memory device among the first plurality of memory devices is less than a marginal power, and An operation order of the plurality of commands is determined such that a command corresponding to a first memory device among the first plurality of commands is executed first.
17. The method for operating a storage device according to claim 15, further comprising: determining that power information less than a marginal power does not exist among the power information of the first plurality of memory devices, and Waiting is performed until the marginal power exceeds at least one of the power information of the first plurality of memory devices, and the operations of the plurality of commands are performed.
18. The method for operating a storage device according to claim 15, further comprising: determining that there is no power information less than a marginal power among the power information of the first plurality of memory devices, obtaining power information of a second plurality of memory devices that perform operations according to the second plurality of commands from a power consumption profile table, comparing the marginal power to the power information of the second plurality of memory devices, determining that power information of a second memory device among the second plurality of memory devices is less than a marginal power, and An operation order of the plurality of commands is determined such that a command corresponding to a second memory device among the second plurality of memory devices is executed first.
19. The method for operating a storage device according to claim 12, further comprising: checking whether the real-time power consumption of the plurality of memory devices exceeds the power budget of the memory devices, executing commands based on the determined operation sequence if the real-time power consumption of each of the plurality of memory devices does not exceed a power budget of the memory device, and The real-time power consumption of the plurality of memory devices is updated.
20. A storage system, comprising: Power supply, supplying power input from external devices, a plurality of nonvolatile memory devices configured to store a plurality of data input from an external device, and Storage controller, configured as: creating a power consumption profile table based on the characteristics of the plurality of non-volatile memory devices, the power consumption profile table representing the power consumption of the plurality of non-volatile memory devices, and When a plurality of commands instructing to save the plurality of data are received from an external device, an operation sequence of the plurality of nonvolatile memory devices is determined based on a comparison result of power input and real-time power consumption of the plurality of nonvolatile memory devices and a power consumption profile table.