WO2019046018A1 - Memory device with power management - Google Patents

Memory device with power management Download PDF

Info

Publication number
WO2019046018A1
WO2019046018A1 PCT/US2018/046766 US2018046766W WO2019046018A1 WO 2019046018 A1 WO2019046018 A1 WO 2019046018A1 US 2018046766 W US2018046766 W US 2018046766W WO 2019046018 A1 WO2019046018 A1 WO 2019046018A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
transactions
transaction
memory device
controller
Prior art date
Application number
PCT/US2018/046766
Other languages
French (fr)
Inventor
Brock Myers
Carl Mies
Original Assignee
Micron Technology, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Micron Technology, Inc. filed Critical Micron Technology, Inc.
Priority to KR1020207008681A priority Critical patent/KR102413479B1/en
Priority to EP18849904.0A priority patent/EP3676686A4/en
Priority to CN201880055269.6A priority patent/CN111052067A/en
Publication of WO2019046018A1 publication Critical patent/WO2019046018A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the disclosed embodiments relate to memory devices, and, in particular, to memory devices with a mechanism for managing power consumption.
  • Computing systems can employ memory devices (e.g., volatile memory devices, non-volatile memory devices, such as flash memory, or a combination device) to store and access information.
  • the memory devices can utilize electrical charges, along with corresponding threshold levels or processing voltage levels, to store and access data.
  • memory devices draw electrical current and consume corresponding amounts of electrical power.
  • the instantaneous levels of power consumption are often inconstant throughout the execution of memory operations, and can include transient load spikes at certain stages or moments during a memory operation. Since memory devices can often perform multiple simultaneous operations, the transient load peaks can be problematic in light of the combined power consumption and physical limitations of the memory devices. While attempts have been made to improve the power management in memory devices, various challenges (e.g., numerous possible combinations and timing of simultaneous operations, different design considerations, unique component characteristics, etc.) have made it difficult to manage the power consumption in real-time. Thus, there is a need for a memory device with a power management mechanism.
  • FIG. 1 is a block diagram of a memory system with a power management mechanism in accordance with an embodiment of the present technology.
  • FIG. 2 illustrates examples of power consumption levels associated with data transactions in accordance with an embodiment of the present technology.
  • FIG. 3 illustrates an example of a total power consumption in accordance with an embodiment of the present technology.
  • FIG. 4 conceptually illustrates load profiles of the data transactions in accordance with an embodiment of the present technology.
  • FIG. 5 illustrates a change in the total power consumption associated with rescheduling transactions in accordance with an embodiment of the present technology.
  • FIG. 6 illustrates an example method of operating a memory system in accordance with embodiments of the present technology.
  • FIG. 7 is a schematic view of a system that includes a memory device in accordance with embodiments of the present technology.
  • the technology disclosed herein relates to memory devices, systems with memory devices, and related methods for scheduling transactions (e.g., read operations, write operations, erase operations) at the memory device based on power consumption characteristics of the transactions.
  • the memory device considers the varying levels of instantaneous current/power consumed by the memory component (e.g., a NAND die) executing the transactions.
  • the memory device can also account for transient loads, where the memory component consumes a peak (i.e., local or overall maximum) level or amount of power that lasts for a relatively short duration (e.g., less than 10%) in comparison to a total amount of time necessary to complete the transaction.
  • the memory devices can schedule the transactions to ensure that the total current consumption at any given moment stays below a threshold level to reduce the inefficiency described above. Accordingly, the memory devices can arrange the set of transactions differently than an initial schedule for executing the transactions (e.g., rather than according to a sequence in which the transactions were received from a host device, or a regular timing for implementing internal operations, etc.). For example, the memory devices can delay execution of a transaction, alter the execution sequence for the transactions, assigning a different memory component to execute the transaction, suspending one or more transactions, or a combination thereof.
  • memory devices can use load profiles (e.g., a set or a sequence of values that represent the amount of power instantaneously consumed during execution of corresponding transactions) to calculate the total amount of power consumption for a given implementation arrangement of the transactions.
  • the memory devices can include a table representing power consumption levels for each memory component across regularly spaced time intervals.
  • the table can represent each of the NAND components along one dimension (e.g., along a vertical direction) and regularly spaced time intervals for each of the components along another dimension (e.g., along a horizontal direction).
  • the memory devices can fill the table with values of the load profiles for the scheduled transactions.
  • the memory devices can characterize the power that will be consumed each moment by each component executing the transactions according to the particular schedule. To find the corresponding total power consumption for each time interval of the table, the memory devices can sum the values in the table across the NAND components for each moment. Using the resulting sums, the memory devices can adjust the scheduling arrangement and/or evaluate various different scheduling arrangements to calculate an updated sequence that maintains the total power consumption within or below a threshold across the time intervals.
  • FIG. 1 is a block diagram of a memory system 100 with a power management mechanism in accordance with an embodiment of the present technology.
  • the memory system 100 includes a memory device 102 having a memory array 104 (e.g., NAND flash) and a controller 106.
  • the memory device 102 can operably couple the memory array 104 to a host device 108 (e.g., an upstream central processor (CPU)).
  • a host device 108 e.g., an upstream central processor (CPU)
  • the memory array 104 can include circuitry configured to store data and to provide access to data.
  • the memory array 104 can be provided as semiconductor, integrated circuits, and/or external removable devices in computers or other electronic devices.
  • the memory array 104 includes a plurality of memory components 110 (e.g., channels 112, packages 114, dies 118, planes, blocks, pages, cells, etc.) configured to store and provide access to data.
  • the memory array 104 can include an array of memory cells that each store data in a charge storage structure.
  • the memory cells can include, for example, floating gate, charge trap, phase change, ferroelectric, magnetoresitive, and/or other suitable storage elements configured to store data persistently or semi-persistently.
  • the memory cells can be one-transistor memory cells that can be can be programmed to a target state to represent information. For instance, electric charge can be placed on, or removed from, the charge storage structure (e.g., the charge trap or the floating gate) of the memory cell to program the cell to a particular data state.
  • the charge storage structure e.g., the charge trap or the floating gate
  • the memory cells can be arranged in rows (e.g., each corresponding to a word line) and columns (e.g., each corresponding to a bit line).
  • Each word line can include one or more memory pages, depending upon the number of data states the memory cells of that word line are configured to store.
  • Each column can include a string of series-coupled memory cells coupled to a common source.
  • the memory cells of each string can be connected in series between a source select transistor (e.g., a field-effect transistor) and a drain select transistor (e.g., a field-effect transistor).
  • Source select transistors can be commonly coupled to a source select line
  • drain select transistors can be commonly coupled to a drain select line.
  • the memory pages can be grouped into memory blocks.
  • the data can be written or otherwise programmed (e.g., erased) with regards to the various memory regions of the memory device 102, such as by writing to groups of pages and/or memory blocks.
  • a write operation often includes programming the memory cells in selected memory pages with specific data values (e.g., a string of data bits having a value of either logic 0 or logic 1).
  • An erase operation is similar to a write operation, except that the erase operation re- programs an entire memory block or multiple memory blocks to the same data state (e.g., logic 0).
  • the controller 106 can utilize the channels 112, where each channel corresponds to a grouping of the packages 114.
  • Each package can further include one or more integrated circuit dies 118 (i.e., a semiconducting structure having the functional circuits therein).
  • the memory cells can be part of the functional circuits within the dies 118, and can be formed along planes within the dies 118.
  • the packagel l4 can each include a stack of memory dies 118 vertically connected with through- silicon vias (TSVs).
  • TSVs through- silicon vias
  • the semiconductor die can be arranged with other dies in a single device package 114.
  • the memory dies 118 can also include other circuit components (not shown), such as multiplexers, decoders, buffers, read/write drivers, address registers, data out/data in registers, etc., for accessing and/or programming (e.g., writing) the data and other functionality, such as for processing information and/or communicating with the controller 106.
  • the memory cells can be arranged in different types of groups and/or hierarchies than those shown in the illustrated embodiments.
  • the controller 106 can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor.
  • the controller 106 can include a processor 120 configured to execute instructions stored in memory.
  • the memory of the controller 106 includes an embedded memory 122 configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory system 100, including managing the memory device 102 and handling communications between the memory device 102 and the host device 108.
  • the embedded memory 122 can include memory registers storing, e.g., memory pointers, fetched data, etc.
  • the embedded memory 122 can also include read-only memory (ROM) for storing micro-code. While the example memory device 102 in Figure 1 has been illustrated as including the controller 106, in another embodiment of the present technology, a memory device may not include a controller, and may instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory device).
  • ROM read-only memory
  • the host device 108 can command or request transactions 130 of various types (e.g., read operations 132, write operations 134, or erase operations 136) for storing, accessing, or managing the data with respect to the memory device 102 or a specific NAND component therein.
  • the controller 106 can implement the transactions 130 with respect to the memory array 104 or the specific NAND component.
  • the controller 106 can initiate the transactions 130 without any initiating input or command from the host device 108 (e.g., for housekeeping operations, such as garbage collection or data refresh).
  • the controller 106 can store a set of the transactions 130 in an operation stack 140 until they are executed.
  • the controller 106 can store the transactions 130 according to an initial schedule 142.
  • the initial schedule 142 can correspond to a sequence, a NAND device assignment, or a combination thereof in which the transactions 130 were received from the host device 108.
  • the initial schedule 142 can further correspond to a sequence or timing for the internally initiated transactions 130 (i.e., by the controller 106 and without any initiating input from the host device 108), such as for regularly timed operations (e.g., data refresh or reallocate) or conditionally triggered operations (e.g., garbage collection).
  • the controller 106 can adjust the execution arrangement of the transactions 130 according to power consumptions parameters. In doing so, the controller 106 can monitor and control the power consumption in addition to and/or separate from power circuitry 144 (e.g., power supply, regulator, interface, etc.) configured to provide electrical power to the components within the memory array 104.
  • the power circuitry 144 can further include a power filter 146 (e.g., circuitry such as including capacitors, limiters, or filters) configured to control or regulate power levels or a rate of change in the power levels.
  • the host device 108 can analyze the power consumption according to power, independent of or in conjunction with the controller 106.
  • FIG. 2 illustrates examples of power consumption levels 202 associated with implementing data transactions in accordance with an embodiment of the present technology.
  • the memory system 100 of FIG. 1 can measure, record, and utilize the power consumption levels 202 of various transactions, such as the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, the erase operation 136 of FIG. 1, etc.
  • an instantaneous magnitude or amount of consumption is represented along a vertical direction and time is represented along a horizontal direction.
  • the power consumption levels 202 can include one or more transient load spikes 204.
  • the transient load spikes 204 can include relatively high (i.e., levels or rates of change that exceed the surrounding levels (e.g., for local or overall maximum) or thresholds) levels of current or power consumptions during execution of the corresponding transactions.
  • the transient load spikes 204 can further last for a relatively short duration during the execution of the operation (e.g., less than 50% or 20% of the total duration for executing the transactions).
  • FIG. 3 illustrates an example of a total power consumption in accordance with an embodiment of the present technology.
  • the memory device 102 of FIG. 1 can calculate the total power consumption corresponding to one or more levels of the memory components 110 of FIG. 1.
  • the total power consumption is shown in FIG. 3 as corresponding to the memory device 102 overall (i.e., sum of power levels consumed by the channels within the memory device 102).
  • the memory device 102 can simultaneously execute multiple transactions 130 across multiple channels. Each of the executions can consume power as illustrated in FIG. 2, resulting in the power consumption trace or envelop for the corresponding channel.
  • the total power consumed by the memory device 102 can be the sum of the power consumed by each of the components (e.g., channels). In some embodiments, the total power consumption can be calculated for each channel, package, chip, die, etc.
  • the memory device 102 may risk consuming more power or current than a consumption threshold 302.
  • the consumption threshold 302 can correspond to a limit or a constraint on a level of power/current consumption (i.e., power rating or limitation corresponding to hardware components and/or configurations). Exceeding the consumption threshold 302 can cause a power supply to brown-out, potentially taking the memory device 102 offline, causing data loss therein or causing damage thereto.
  • FIG. 4 conceptually illustrates load profiles 402 of the data transactions in accordance with an embodiment of the present technology.
  • the load profile 402 can include representation of the consumption levels 202 of FIG. 2 for the transactions 130 of FIG. 1.
  • the memory system 100 of FIG. 1 can generate the load profiles 402 by measuring and/or sampling the consumption levels 202 of the memory components 110 of FIG. 1 or a component/circuitry representative of the memory components 110 while implementing or executing the transactions 130. (e.g., the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, the erase operation 136 of FIG. 1, etc.) thereon.
  • the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, the erase operation 136 of FIG. 1, etc. thereon.
  • the memory system 100 can generate a read profile 404 by sampling the consumption levels 202 while executing the read operation 132 using a memory die that is configured as part of the memory device 102 or that is representative of the memory dies 118 of FIG. 1 within the memory device 102.
  • the memory system 100 can similarly generate a write profile 406 by sampling while executing the write operation 134 and an erase profile 408 while executing the erase operation 136.
  • the load profiles 402 can include a set of values corresponding to the consumption level measured according to a time interval 410 that corresponds to a sampling frequency.
  • the memory system 100 can utilize multiple sets of load profiles 402 that correspond to different sampling frequencies.
  • the memory system 100 can store the generated load profiles 402 in the memory device 102.
  • the memory system 100 can use the load profiles 402 to characterize the power consumption of other memory components in the memory device 102.
  • the load profiles 402 can represent the power that can be consumed by other memory dies 118 of the memory device 102 executing the read operation 132, the write operation 134, the erase operation 136, etc.
  • the memory device 102 (e.g., using the controller 106 of FIG. 1) can use the load profiles 402 to calculate or estimate the moment-by-moment total power consumption associated with implementing the transactions 130 according to a specific sequence or arrangement. Using the load profiles 402, the memory device 102 can adjust or discard the initial schedule 142, and execute the transactions 130 in the operation stack 140 of FIG. 1 in a different sequence or arrangement that maintains the total power consumption below the consumption threshold 302.
  • FIG. 5 illustrates a change in the total power consumption associated with rescheduling the transactions 130 in accordance with an embodiment of the present technology.
  • the memory device 102 FIG. 1 can use consumption sample values 502 (e.g., sampled values representing power or current consumption levels associated with executing the transactions 130 of FIG. 1) of the load profiles 402 of FIG. 4 to determine a consumption estimate profile 504 (e.g., moment-by- moment description of power/current that will be consumed over time by executing the transactions 130 according to a particular arrangement).
  • consumption sample values 502 e.g., sampled values representing power or current consumption levels associated with executing the transactions 130 of FIG. 1
  • a consumption estimate profile 504 e.g., moment-by- moment description of power/current that will be consumed over time by executing the transactions 130 according to a particular arrangement.
  • the consumption estimate profile 504 can be implemented using the tables illustrated in FIG. 5. Each row in the consumption estimate profile 504 can correspond to one of the memory components 110 of FIG. 1 (e.g., the memory dies 118 of FIG. 1), and each column can correspond to a particular time interval 410 of FIG. 4 (e.g., corresponding to the sampling frequency).
  • the consumption estimate profile 504 can include a number of time slots corresponding to future or upcoming times and operations.
  • the controller 106 can calculate the consumption estimate profile 504 by filling the table with the consumption sample values 502 of the transactions 130 according to a particular schedule, such as the initial schedule 142. As illustrated in FIG.
  • the initial schedule 142 is represented in the top table with: 'NANDO' having the write operation 134 scheduled at time T and the read operation 132 scheduled at time '11,' 'NAND1' and 'NAND2' both having the erase operation 136 scheduled at time ⁇ ,' and 'NAND3' having the read operation 132 finish at time '4' and further reads scheduled for time '6' and '15' followed by the write operation 134 at time '23.
  • the controller 106 can use the consumption estimate profile 504 to calculate a combined consumption estimate 506 representing the total consumption level. For example, the controller 106 can calculate the combined consumption estimate 506 by calculating a sum of the consumption sample values 502 across the NAND components for each time slot.
  • the controller 106 can use the combined consumption estimate 506 to evaluate the corresponding schedule.
  • the controller 106 can adjust the corresponding schedule or generate a new schedule for the transactions 130 in the operation stack 140 when the evaluated schedule consumes power exceeding the consumption threshold 302.
  • the initial schedule 142 can correspond to excessive power consumption at time slots '8' through '9' and ⁇ ⁇ through '13.'
  • the controller 106 can calculate an updated schedule 508 (i.e., an arrangement and/or sequence for executing the transactions 130 different than the initial schedule) that maintains the combined consumption estimate 506 below the consumption threshold 302.
  • the controller 106 can calculate the updated schedule 508 using one or more scheduling mechanisms (i.e., an algorithm, a software routine, a method, a circuitry, a configuration, or a combination thereof).
  • the controller 106 can calculate the updated schedule 508 using a delay mechanism that reschedules the corresponding transaction at a time later than the previous schedule (e.g., delaying the write operation from time T to time '4' for 'NANDO' and delaying the erase operation from time T to time '13' for 'NAND2' as illustrated in FIG. 5).
  • the controller 106 can calculate the updated schedule 508 using a suspend-operation mechanism that pauses or suspends execution of the corresponding transaction (e.g., suspending the erase operation at time '18' through '21' and resume the remaining portion of the transaction at time '22' as illustrated in FIG. 5).
  • the controller 106 can calculate the updated schedule 508 using a component- reallocation mechanism that reschedules the transaction to a different component (i.e., a different channel, package, chip, die, etc., such as rescheduling a write operation from 'NAND3' to 'NANDO' as illustrated in FIG. 5).
  • the controller 106 can calculate the updated schedule 508 according to a preference or a weighing scheme (e.g., for determining which transaction to reschedule). For example, the controller 106 can determine a transaction to be rescheduled based on transaction types, incoming or received sequence, etc. In some embodiments, the controller 106 can calculate the updated schedule 508 based on rescheduling (e.g., delaying or suspending transactions) the erase operation 136 and/or the write operation 134 before rescheduling the read operation 132. In some embodiments, the controller 106 can calculate the updated schedule 508 based on reallocating the write operation 134. In some embodiments, the controller 106 can reschedule based on the transaction type and then based on the received order.
  • a a weighing scheme e.g., for determining which transaction to reschedule. For example, the controller 106 can determine a transaction to be rescheduled based on transaction types, incoming or received sequence
  • FIG. 6 illustrates an example method 600 of operating the memory system 100 in FIG. 1 in accordance with embodiments of the present technology.
  • the memory system 100 can use the method 600 to generate the load profiles 402 of FIG. 4 that can be subsequently used to adjust the execution schedule of the transactions 130 of FIG. 1 according to the total power consumption level.
  • the memory system 100 can execute a transaction (e.g., the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, or the erase operation 136 of FIG. 1).
  • the memory system 100 can use a memory component representative of the memory components 110 of FIG. 1 (e.g., the memory channels 112 of FIG. 1, the memory packages 114 of FIG. 1, the memory dies 118 of FIG. 1, etc.) in the memory device 102 of FIG. 1.
  • the memory system 100 can execute the transaction using the memory array 104 of FIG. 1 and the power circuitry 144 of FIG. 1, a representative circuit, etc.
  • the power or current consumption associated with executing the transaction can be measured.
  • the measurement can be done with the power circuitry 144 of the memory system 100, or with other measurement circuitry (e.g., current-reading resistor, lab equipment, etc.) to determine the consumption levels 202 of FIG. 2, the consumption sample values 502 of FIG. 5 (i.e., measurements sampled at time intervals 410 of FIG. 4 corresponding to the sampling frequency), or a combination thereof.
  • the measurement can represent the current draw or the power consumption that will take place when the memory device 102 executes the transaction.
  • the memory system 100 can generate the load profiles 402.
  • the memory system 100 can repeat the processes represented in boxes 602-604 for all possible transactions or variations thereof.
  • the memory system 100 can store the load profiles 402 in the memory device 102, such as in the memory array 104 or the embedded memory 122 of FIG. 1.
  • the memory system 100 can further use the method 600 to adjust the execution schedule of the transactions 130 of FIG. 1 and maintain the total power consumption level below the consumption threshold 302 of FIG. 3.
  • the memory device 102 e.g., self- initiated and executed by the controller 106 without any influence or initiation from the host device 108) can adjust the execution schedule using the load profiles 402.
  • the memory device 102 can determine the transactions 130 intended for execution therein.
  • the memory device 102 can determine the transactions 130 by receiving the transactions 130 from the host device 108, as represented in a box 622.
  • the memory device 102 can further determine the transactions 130 by internally initiating the transactions 130 (e.g., as part of a garbage collection process or a data refresh process), as represented in a box 624.
  • the memory device 102 can store and/or track the transactions 130 using the operation stack 140. Initially, the memory device 102 can store the received and/or the self-initiated transactions as they are received or triggered (i.e., according to the initial schedule 142).
  • the memory device 102 can access the load profiles 402 that correspond to the transactions 130 in the operation stack 140.
  • the memory device 102 can access the load profiles 402 stored in the memory device 102.
  • the memory device 102 is described as accessing the load profiles 402 that are predetermined, as discussed above. However, it is understood that the memory device 102 can operate differently, such as by dynamically measuring and updating the load profiles 402.
  • the memory device 102 can arrange the load profiles 402 (i.e., the consumption sample values 502 therein) according to the schedule.
  • the controller 106 can fill the consumption estimate profile 504 of FIG. 5 according to the schedule, such as by filling the corresponding time slots with the consumption sample values 502 according to the processed schedule (e.g., the initial schedule 142 or the adjusted arrangement).
  • the controller 106 can further update the consumption estimate profile 504 according to execution and passage of time. For example, the controller 106 can shift the consumption sample values 502 to a lower or sooner time slot (e.g., to the left as illustrated in FIG. 5) for each execution or time cycle (e.g., a fixed time duration or a system trigger).
  • the current time can be time '0' (not shown in FIG. 5) and the time slots can be the upcoming time periods or intervals.
  • the memory device 102 can calculate or estimate the total consumption associated with the processed schedule.
  • the controller 106 can calculate or estimate the total for future or upcoming time slots by calculating the combined consumption estimate 506 (i.e., by summing the consumption sample values 502 across the memory components 110 for the upcoming or future time slots).
  • the controller 106 can calculate the combined consumption estimate 506 by summing the values in each column corresponding to the time slot.
  • the memory device 102 can determine if the combined consumption estimate 506 of the processed schedule exceeds the consumption threshold 302 at any upcoming time slots or future times. The memory device 102 can compare the value of the combined consumption estimate 506 for each upcoming time slots with the consumption threshold 302.
  • the memory device 102 can execute the transactions 130 according to the processed sequence (e.g., the initial schedule 142 or the schedule that has been updated) when the combined consumption estimate 506 is below the consumption threshold 302 for the upcoming time slots.
  • the method 600 can feedback to the box 608 and further process new transactions.
  • the memory device 102 can adjust the processed schedule and/or generate the updated schedule 508, which is different from the processed schedule, for executing the transactions 130 in the operation stack 140 when the combined consumption estimate 506 is equal to or greater than the consumption threshold 302 for the upcoming time slots.
  • the controller 106 can delay execution of a transaction, suspend an ongoing transaction in the midst of execution, restart or complete the remaining part of the suspended transaction, reallocate the transaction for execution using a different memory component, or a combination thereof.
  • the controller 106 can adjust or generate based on identifying a timing or a time slot where the combined consumption estimate 506 exceeds the consumption threshold 302.
  • the controller 106 can further identify the particular transaction associated with the time slot or the timing with the exceeding power consumption.
  • the controller 106 can further identify the transient load spikes 204 of FIG. 2 associated with the scheduled transactions.
  • the controller 106 can determine a mechanism for adjusting the schedule and/or generating the updated schedule 508. For example, the controller 106 can delay execution, suspend or restart, reallocate, or a combination thereof for one or more of the transactions associated with exceeding power consumption at an upcoming time. Also for example, the controller 106 can delay execution, suspend or restart, reallocate, or a combination thereof for one or more of the transactions scheduled before or after the time slot corresponding to the exceeding power consumption. Also for example, the controller 106 can follow an order of operation or importance in generating the updated schedule 508, such as by rescheduling the write operation 134 and/or the erase operation 136 before the read operation 132 and then implementing the most recent operation first.
  • the updated schedule 508 can be fed back to the box 614 and evaluated as discussed above.
  • the controller 106 can generate the consumption estimate profile 504, calculate and evaluate the combined consumption estimate 506, and compare the combined consumption estimate 506 against the consumption threshold 302.
  • the controller 106 can generate the updated schedule 508 based on generating a set number of possible schedules.
  • the controller 106 can evaluate the multiple possible schedules, such as by calculating a score for each schedule based on a number of changes to the schedule, an overall delay to the set of the transactions 130, a maximum or a sustained power consumption, etc.
  • the controller 106 can select one of the evaluated schedules based on the score (e.g., the schedule with the lowest or the highest score).
  • Calculating the updated schedule 508 based on the consumption estimate profile 504 that estimates or predicts the total power consumption provides enhanced efficiency and robustness for the memory device 102.
  • the controller 106 can automatically use the updated schedule 508 to keep the total power consumption level below a maximum, which can lead to a reduction in unnecessary power capacity (e.g., thereby logically increasing the performance within the allotted power budget), and also prevent any brown-outs for power supplies.
  • FIG. 7 is a schematic view of a system that includes a memory device in accordance with embodiments of the present technology. Any one of the foregoing memory devices described above with reference to FIGs. 1-6 can be incorporated into any of a myriad of larger and/or more complex systems, a representative example of which is system 780 shown schematically in FIG. 7.
  • the system 780 can include a memory device 700, a power source 782, a driver 784, a processor 786, and/or other subsystems or components 788.
  • the memory device 700 can include features generally similar to those of the memory device described above with reference to FIGs. 1-6, and can therefore include various features for performing the operations discussed above.
  • the resulting system 780 can perform any of a wide variety of functions, such as memory storage, data processing, and/or other suitable functions. Accordingly, representative systems 780 can include, without limitation, hand-held devices (e.g., mobile phones, tablets, digital readers, and digital audio players), computers, vehicles, appliances and other products. Components of the system 780 may be housed in a single unit or distributed over multiple, interconnected units (e.g., through a communications network). The components of the system 780 can also include remote devices and any of a wide variety of computer readable media.
  • hand-held devices e.g., mobile phones, tablets, digital readers, and digital audio players
  • Components of the system 780 may be housed in a single unit or distributed over multiple, interconnected units (e.g., through a communications network).
  • the components of the system 780 can also include remote devices and any of a wide variety of computer readable media.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Memory System (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

A memory device includes a memory array including a plurality of memory components; and a controller coupled to the memory array, the controller configured to: determine a set of transactions to be implemented across two or more memory components according to an initial schedule; calculate a first plurality of power consumption levels corresponding to the initial schedule; and if one or more of the power consumption levels exceed a predetermined threshold, calculate an updated schedule for implementing the set of transactions across the two or more memory components, wherein the updated schedule corresponds to a second plurality of power consumption levels that are all at or below the predetermined threshold.

Description

MEMORY DEVICE WITH POWER MANAGEMENT
TECHNICAL FIELD
[0001] The disclosed embodiments relate to memory devices, and, in particular, to memory devices with a mechanism for managing power consumption.
BACKGROUND
[0002] Computing systems can employ memory devices (e.g., volatile memory devices, non-volatile memory devices, such as flash memory, or a combination device) to store and access information. The memory devices can utilize electrical charges, along with corresponding threshold levels or processing voltage levels, to store and access data.
[0003] In storing and accessing the data, memory devices draw electrical current and consume corresponding amounts of electrical power. The instantaneous levels of power consumption are often inconstant throughout the execution of memory operations, and can include transient load spikes at certain stages or moments during a memory operation. Since memory devices can often perform multiple simultaneous operations, the transient load peaks can be problematic in light of the combined power consumption and physical limitations of the memory devices. While attempts have been made to improve the power management in memory devices, various challenges (e.g., numerous possible combinations and timing of simultaneous operations, different design considerations, unique component characteristics, etc.) have made it difficult to manage the power consumption in real-time. Thus, there is a need for a memory device with a power management mechanism.
BRIEF DESCRIPTION OF THE DRAWINGS
[0004] FIG. 1 is a block diagram of a memory system with a power management mechanism in accordance with an embodiment of the present technology.
[0005] FIG. 2 illustrates examples of power consumption levels associated with data transactions in accordance with an embodiment of the present technology. [0006] FIG. 3 illustrates an example of a total power consumption in accordance with an embodiment of the present technology.
[0007] FIG. 4 conceptually illustrates load profiles of the data transactions in accordance with an embodiment of the present technology.
[0008] FIG. 5 illustrates a change in the total power consumption associated with rescheduling transactions in accordance with an embodiment of the present technology.
[0009] FIG. 6 illustrates an example method of operating a memory system in accordance with embodiments of the present technology.
[0010] FIG. 7 is a schematic view of a system that includes a memory device in accordance with embodiments of the present technology.
DETAILED DESCRIPTION
[0011] The technology disclosed herein relates to memory devices, systems with memory devices, and related methods for scheduling transactions (e.g., read operations, write operations, erase operations) at the memory device based on power consumption characteristics of the transactions. In implementing each of the transactions, the memory device considers the varying levels of instantaneous current/power consumed by the memory component (e.g., a NAND die) executing the transactions. By considering the instantaneous current/power drawn throughout execution of the transactions, the memory device can also account for transient loads, where the memory component consumes a peak (i.e., local or overall maximum) level or amount of power that lasts for a relatively short duration (e.g., less than 10%) in comparison to a total amount of time necessary to complete the transaction.
[0012] Since the peak power levels are momentary, designing the hardware of the memory device to handle the highest possible level of power consumption, which would generally occur only rarely, can lead to overall inefficiency. Such inefficiency is worsened when the memory device is capable of concurrently executing multiple transactions using multiple memory components.
[0013] In considering the instantaneous current/power consumed throughout execution of the transactions, the memory devices (e.g., using controllers therein or coupled thereto) can schedule the transactions to ensure that the total current consumption at any given moment stays below a threshold level to reduce the inefficiency described above. Accordingly, the memory devices can arrange the set of transactions differently than an initial schedule for executing the transactions (e.g., rather than according to a sequence in which the transactions were received from a host device, or a regular timing for implementing internal operations, etc.). For example, the memory devices can delay execution of a transaction, alter the execution sequence for the transactions, assigning a different memory component to execute the transaction, suspending one or more transactions, or a combination thereof.
[0014] In accordance with an embodiment of the present technology, memory devices can use load profiles (e.g., a set or a sequence of values that represent the amount of power instantaneously consumed during execution of corresponding transactions) to calculate the total amount of power consumption for a given implementation arrangement of the transactions. For example, the memory devices can include a table representing power consumption levels for each memory component across regularly spaced time intervals. The table can represent each of the NAND components along one dimension (e.g., along a vertical direction) and regularly spaced time intervals for each of the components along another dimension (e.g., along a horizontal direction). According to the arrangement specified by a particular schedule, the memory devices can fill the table with values of the load profiles for the scheduled transactions. As such, the memory devices can characterize the power that will be consumed each moment by each component executing the transactions according to the particular schedule. To find the corresponding total power consumption for each time interval of the table, the memory devices can sum the values in the table across the NAND components for each moment. Using the resulting sums, the memory devices can adjust the scheduling arrangement and/or evaluate various different scheduling arrangements to calculate an updated sequence that maintains the total power consumption within or below a threshold across the time intervals.
[0015] FIG. 1 is a block diagram of a memory system 100 with a power management mechanism in accordance with an embodiment of the present technology. The memory system 100 includes a memory device 102 having a memory array 104 (e.g., NAND flash) and a controller 106. The memory device 102 can operably couple the memory array 104 to a host device 108 (e.g., an upstream central processor (CPU)).
[0016] The memory array 104 can include circuitry configured to store data and to provide access to data. The memory array 104 can be provided as semiconductor, integrated circuits, and/or external removable devices in computers or other electronic devices. The memory array 104 includes a plurality of memory components 110 (e.g., channels 112, packages 114, dies 118, planes, blocks, pages, cells, etc.) configured to store and provide access to data. For example, the memory array 104 can include an array of memory cells that each store data in a charge storage structure. The memory cells can include, for example, floating gate, charge trap, phase change, ferroelectric, magnetoresitive, and/or other suitable storage elements configured to store data persistently or semi-persistently. The memory cells can be one-transistor memory cells that can be can be programmed to a target state to represent information. For instance, electric charge can be placed on, or removed from, the charge storage structure (e.g., the charge trap or the floating gate) of the memory cell to program the cell to a particular data state.
[0017] The memory cells can be arranged in rows (e.g., each corresponding to a word line) and columns (e.g., each corresponding to a bit line). Each word line can include one or more memory pages, depending upon the number of data states the memory cells of that word line are configured to store. Each column can include a string of series-coupled memory cells coupled to a common source. The memory cells of each string can be connected in series between a source select transistor (e.g., a field-effect transistor) and a drain select transistor (e.g., a field-effect transistor). Source select transistors can be commonly coupled to a source select line, and drain select transistors can be commonly coupled to a drain select line.
[0018] The memory pages can be grouped into memory blocks. In operation, the data can be written or otherwise programmed (e.g., erased) with regards to the various memory regions of the memory device 102, such as by writing to groups of pages and/or memory blocks. In NAND- based memory, a write operation often includes programming the memory cells in selected memory pages with specific data values (e.g., a string of data bits having a value of either logic 0 or logic 1). An erase operation is similar to a write operation, except that the erase operation re- programs an entire memory block or multiple memory blocks to the same data state (e.g., logic 0).
[0019] In manipulating the data (e.g., for writing, reading, or erasing the data), the controller 106 can utilize the channels 112, where each channel corresponds to a grouping of the packages 114. Each package can further include one or more integrated circuit dies 118 (i.e., a semiconducting structure having the functional circuits therein). The memory cells can be part of the functional circuits within the dies 118, and can be formed along planes within the dies 118. [0020] For example, the packagel l4 can each include a stack of memory dies 118 vertically connected with through- silicon vias (TSVs). Also for example, the semiconductor die can be arranged with other dies in a single device package 114. The memory dies 118 can also include other circuit components (not shown), such as multiplexers, decoders, buffers, read/write drivers, address registers, data out/data in registers, etc., for accessing and/or programming (e.g., writing) the data and other functionality, such as for processing information and/or communicating with the controller 106. In other embodiments, the memory cells can be arranged in different types of groups and/or hierarchies than those shown in the illustrated embodiments.
[0021] The controller 106 can be a microcontroller, special purpose logic circuitry (e.g., a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), etc.), or other suitable processor. The controller 106 can include a processor 120 configured to execute instructions stored in memory. In the illustrated example, the memory of the controller 106 includes an embedded memory 122 configured to store instructions for performing various processes, operations, logic flows, and routines that control operation of the memory system 100, including managing the memory device 102 and handling communications between the memory device 102 and the host device 108. In some embodiments, the embedded memory 122 can include memory registers storing, e.g., memory pointers, fetched data, etc. The embedded memory 122 can also include read-only memory (ROM) for storing micro-code. While the example memory device 102 in Figure 1 has been illustrated as including the controller 106, in another embodiment of the present technology, a memory device may not include a controller, and may instead rely upon external control (e.g., provided by an external host, or by a processor or controller separate from the memory device).
[0022] In some scenarios or embodiments, the host device 108 can command or request transactions 130 of various types (e.g., read operations 132, write operations 134, or erase operations 136) for storing, accessing, or managing the data with respect to the memory device 102 or a specific NAND component therein. The controller 106 can implement the transactions 130 with respect to the memory array 104 or the specific NAND component. In some scenarios or embodiments, the controller 106 can initiate the transactions 130 without any initiating input or command from the host device 108 (e.g., for housekeeping operations, such as garbage collection or data refresh). [0023] The controller 106 can store a set of the transactions 130 in an operation stack 140 until they are executed. The controller 106 can store the transactions 130 according to an initial schedule 142. The initial schedule 142 can correspond to a sequence, a NAND device assignment, or a combination thereof in which the transactions 130 were received from the host device 108. The initial schedule 142 can further correspond to a sequence or timing for the internally initiated transactions 130 (i.e., by the controller 106 and without any initiating input from the host device 108), such as for regularly timed operations (e.g., data refresh or reallocate) or conditionally triggered operations (e.g., garbage collection).
[0024] Instead of executing the transactions 130 according to the initial schedule 142, the controller 106 can adjust the execution arrangement of the transactions 130 according to power consumptions parameters. In doing so, the controller 106 can monitor and control the power consumption in addition to and/or separate from power circuitry 144 (e.g., power supply, regulator, interface, etc.) configured to provide electrical power to the components within the memory array 104. The power circuitry 144 can further include a power filter 146 (e.g., circuitry such as including capacitors, limiters, or filters) configured to control or regulate power levels or a rate of change in the power levels. In some embodiments, the host device 108 can analyze the power consumption according to power, independent of or in conjunction with the controller 106.
[0025] FIG. 2 illustrates examples of power consumption levels 202 associated with implementing data transactions in accordance with an embodiment of the present technology. The memory system 100 of FIG. 1 can measure, record, and utilize the power consumption levels 202 of various transactions, such as the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, the erase operation 136 of FIG. 1, etc. For illustrative purposes, an instantaneous magnitude or amount of consumption is represented along a vertical direction and time is represented along a horizontal direction.
[0026] The power consumption levels 202 can include one or more transient load spikes 204. The transient load spikes 204 can include relatively high (i.e., levels or rates of change that exceed the surrounding levels (e.g., for local or overall maximum) or thresholds) levels of current or power consumptions during execution of the corresponding transactions. The transient load spikes 204 can further last for a relatively short duration during the execution of the operation (e.g., less than 50% or 20% of the total duration for executing the transactions). [0027] FIG. 3 illustrates an example of a total power consumption in accordance with an embodiment of the present technology. The memory device 102 of FIG. 1 can calculate the total power consumption corresponding to one or more levels of the memory components 110 of FIG. 1. As an illustrative example, the total power consumption is shown in FIG. 3 as corresponding to the memory device 102 overall (i.e., sum of power levels consumed by the channels within the memory device 102). For example, the memory device 102 can simultaneously execute multiple transactions 130 across multiple channels. Each of the executions can consume power as illustrated in FIG. 2, resulting in the power consumption trace or envelop for the corresponding channel. The total power consumed by the memory device 102 can be the sum of the power consumed by each of the components (e.g., channels). In some embodiments, the total power consumption can be calculated for each channel, package, chip, die, etc.
[0028] In executing the transactions 130 according to the initial schedule 142 (i.e., without adjusting for power consumption), the memory device 102 may risk consuming more power or current than a consumption threshold 302. The consumption threshold 302 can correspond to a limit or a constraint on a level of power/current consumption (i.e., power rating or limitation corresponding to hardware components and/or configurations). Exceeding the consumption threshold 302 can cause a power supply to brown-out, potentially taking the memory device 102 offline, causing data loss therein or causing damage thereto.
[0029] FIG. 4 conceptually illustrates load profiles 402 of the data transactions in accordance with an embodiment of the present technology. The load profile 402 can include representation of the consumption levels 202 of FIG. 2 for the transactions 130 of FIG. 1. In some embodiments, the memory system 100 of FIG. 1 can generate the load profiles 402 by measuring and/or sampling the consumption levels 202 of the memory components 110 of FIG. 1 or a component/circuitry representative of the memory components 110 while implementing or executing the transactions 130. (e.g., the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, the erase operation 136 of FIG. 1, etc.) thereon.
[0030] For example, the memory system 100 can generate a read profile 404 by sampling the consumption levels 202 while executing the read operation 132 using a memory die that is configured as part of the memory device 102 or that is representative of the memory dies 118 of FIG. 1 within the memory device 102. The memory system 100 can similarly generate a write profile 406 by sampling while executing the write operation 134 and an erase profile 408 while executing the erase operation 136. In some embodiments, the load profiles 402 can include a set of values corresponding to the consumption level measured according to a time interval 410 that corresponds to a sampling frequency. In some embodiments, the memory system 100 can utilize multiple sets of load profiles 402 that correspond to different sampling frequencies.
[0031] The memory system 100 can store the generated load profiles 402 in the memory device 102. The memory system 100 can use the load profiles 402 to characterize the power consumption of other memory components in the memory device 102. For example, the load profiles 402 can represent the power that can be consumed by other memory dies 118 of the memory device 102 executing the read operation 132, the write operation 134, the erase operation 136, etc.
[0032] The memory device 102 (e.g., using the controller 106 of FIG. 1) can use the load profiles 402 to calculate or estimate the moment-by-moment total power consumption associated with implementing the transactions 130 according to a specific sequence or arrangement. Using the load profiles 402, the memory device 102 can adjust or discard the initial schedule 142, and execute the transactions 130 in the operation stack 140 of FIG. 1 in a different sequence or arrangement that maintains the total power consumption below the consumption threshold 302.
[0033] FIG. 5 illustrates a change in the total power consumption associated with rescheduling the transactions 130 in accordance with an embodiment of the present technology. The memory device 102 FIG. 1 can use consumption sample values 502 (e.g., sampled values representing power or current consumption levels associated with executing the transactions 130 of FIG. 1) of the load profiles 402 of FIG. 4 to determine a consumption estimate profile 504 (e.g., moment-by- moment description of power/current that will be consumed over time by executing the transactions 130 according to a particular arrangement).
[0034] For example, the consumption estimate profile 504 can be implemented using the tables illustrated in FIG. 5. Each row in the consumption estimate profile 504 can correspond to one of the memory components 110 of FIG. 1 (e.g., the memory dies 118 of FIG. 1), and each column can correspond to a particular time interval 410 of FIG. 4 (e.g., corresponding to the sampling frequency). The consumption estimate profile 504 can include a number of time slots corresponding to future or upcoming times and operations. The controller 106 can calculate the consumption estimate profile 504 by filling the table with the consumption sample values 502 of the transactions 130 according to a particular schedule, such as the initial schedule 142. As illustrated in FIG. 5, the initial schedule 142 is represented in the top table with: 'NANDO' having the write operation 134 scheduled at time T and the read operation 132 scheduled at time '11,' 'NAND1' and 'NAND2' both having the erase operation 136 scheduled at time Ί,' and 'NAND3' having the read operation 132 finish at time '4' and further reads scheduled for time '6' and '15' followed by the write operation 134 at time '23.'
[0035] The controller 106 can use the consumption estimate profile 504 to calculate a combined consumption estimate 506 representing the total consumption level. For example, the controller 106 can calculate the combined consumption estimate 506 by calculating a sum of the consumption sample values 502 across the NAND components for each time slot.
[0036] The controller 106 can use the combined consumption estimate 506 to evaluate the corresponding schedule. The controller 106 can adjust the corresponding schedule or generate a new schedule for the transactions 130 in the operation stack 140 when the evaluated schedule consumes power exceeding the consumption threshold 302. For example, the initial schedule 142 can correspond to excessive power consumption at time slots '8' through '9' and Ί Γ through '13.' In response, the controller 106 can calculate an updated schedule 508 (i.e., an arrangement and/or sequence for executing the transactions 130 different than the initial schedule) that maintains the combined consumption estimate 506 below the consumption threshold 302.
[0037] The controller 106 can calculate the updated schedule 508 using one or more scheduling mechanisms (i.e., an algorithm, a software routine, a method, a circuitry, a configuration, or a combination thereof). In some embodiments, the controller 106 can calculate the updated schedule 508 using a delay mechanism that reschedules the corresponding transaction at a time later than the previous schedule (e.g., delaying the write operation from time T to time '4' for 'NANDO' and delaying the erase operation from time T to time '13' for 'NAND2' as illustrated in FIG. 5). In some embodiments, the controller 106 can calculate the updated schedule 508 using a suspend-operation mechanism that pauses or suspends execution of the corresponding transaction (e.g., suspending the erase operation at time '18' through '21' and resume the remaining portion of the transaction at time '22' as illustrated in FIG. 5). In some embodiments, the controller 106 can calculate the updated schedule 508 using a component- reallocation mechanism that reschedules the transaction to a different component (i.e., a different channel, package, chip, die, etc., such as rescheduling a write operation from 'NAND3' to 'NANDO' as illustrated in FIG. 5). [0038] The controller 106 can calculate the updated schedule 508 according to a preference or a weighing scheme (e.g., for determining which transaction to reschedule). For example, the controller 106 can determine a transaction to be rescheduled based on transaction types, incoming or received sequence, etc. In some embodiments, the controller 106 can calculate the updated schedule 508 based on rescheduling (e.g., delaying or suspending transactions) the erase operation 136 and/or the write operation 134 before rescheduling the read operation 132. In some embodiments, the controller 106 can calculate the updated schedule 508 based on reallocating the write operation 134. In some embodiments, the controller 106 can reschedule based on the transaction type and then based on the received order.
[0039] FIG. 6 illustrates an example method 600 of operating the memory system 100 in FIG. 1 in accordance with embodiments of the present technology. The memory system 100 can use the method 600 to generate the load profiles 402 of FIG. 4 that can be subsequently used to adjust the execution schedule of the transactions 130 of FIG. 1 according to the total power consumption level.
[0040] At a box 602, the memory system 100 can execute a transaction (e.g., the read operation 132 of FIG. 1, the write operation 134 of FIG. 1, or the erase operation 136 of FIG. 1). The memory system 100 can use a memory component representative of the memory components 110 of FIG. 1 (e.g., the memory channels 112 of FIG. 1, the memory packages 114 of FIG. 1, the memory dies 118 of FIG. 1, etc.) in the memory device 102 of FIG. 1. For example, the memory system 100 can execute the transaction using the memory array 104 of FIG. 1 and the power circuitry 144 of FIG. 1, a representative circuit, etc.
[0041] At a box 604, the power or current consumption associated with executing the transaction can be measured. The measurement can be done with the power circuitry 144 of the memory system 100, or with other measurement circuitry (e.g., current-reading resistor, lab equipment, etc.) to determine the consumption levels 202 of FIG. 2, the consumption sample values 502 of FIG. 5 (i.e., measurements sampled at time intervals 410 of FIG. 4 corresponding to the sampling frequency), or a combination thereof. The measurement can represent the current draw or the power consumption that will take place when the memory device 102 executes the transaction.
[0042] At a box 606, the memory system 100 can generate the load profiles 402. The memory system 100 can repeat the processes represented in boxes 602-604 for all possible transactions or variations thereof. The memory system 100 can store the load profiles 402 in the memory device 102, such as in the memory array 104 or the embedded memory 122 of FIG. 1.
[0043] The memory system 100 can further use the method 600 to adjust the execution schedule of the transactions 130 of FIG. 1 and maintain the total power consumption level below the consumption threshold 302 of FIG. 3. For example, the memory device 102 (e.g., self- initiated and executed by the controller 106 without any influence or initiation from the host device 108) can adjust the execution schedule using the load profiles 402.
[0044] At a box 608, the memory device 102 can determine the transactions 130 intended for execution therein. The memory device 102 can determine the transactions 130 by receiving the transactions 130 from the host device 108, as represented in a box 622. The memory device 102 can further determine the transactions 130 by internally initiating the transactions 130 (e.g., as part of a garbage collection process or a data refresh process), as represented in a box 624. The memory device 102 can store and/or track the transactions 130 using the operation stack 140. Initially, the memory device 102 can store the received and/or the self-initiated transactions as they are received or triggered (i.e., according to the initial schedule 142).
[0045] At a box 610, the memory device 102 can access the load profiles 402 that correspond to the transactions 130 in the operation stack 140. The memory device 102 can access the load profiles 402 stored in the memory device 102.
[0046] For illustrative purposes, the memory device 102 is described as accessing the load profiles 402 that are predetermined, as discussed above. However, it is understood that the memory device 102 can operate differently, such as by dynamically measuring and updating the load profiles 402.
[0047] At a box 612, the memory device 102 can arrange the load profiles 402 (i.e., the consumption sample values 502 therein) according to the schedule. For example, the controller 106 can fill the consumption estimate profile 504 of FIG. 5 according to the schedule, such as by filling the corresponding time slots with the consumption sample values 502 according to the processed schedule (e.g., the initial schedule 142 or the adjusted arrangement).
[0048] The controller 106 can further update the consumption estimate profile 504 according to execution and passage of time. For example, the controller 106 can shift the consumption sample values 502 to a lower or sooner time slot (e.g., to the left as illustrated in FIG. 5) for each execution or time cycle (e.g., a fixed time duration or a system trigger). The current time can be time '0' (not shown in FIG. 5) and the time slots can be the upcoming time periods or intervals.
[0049] At a box 614, the memory device 102 can calculate or estimate the total consumption associated with the processed schedule. For example, the controller 106 can calculate or estimate the total for future or upcoming time slots by calculating the combined consumption estimate 506 (i.e., by summing the consumption sample values 502 across the memory components 110 for the upcoming or future time slots). As illustrated in FIG. 5, the controller 106 can calculate the combined consumption estimate 506 by summing the values in each column corresponding to the time slot.
[0050] At a box 616, the memory device 102 can determine if the combined consumption estimate 506 of the processed schedule exceeds the consumption threshold 302 at any upcoming time slots or future times. The memory device 102 can compare the value of the combined consumption estimate 506 for each upcoming time slots with the consumption threshold 302.
[0051] At a box 620, the memory device 102 can execute the transactions 130 according to the processed sequence (e.g., the initial schedule 142 or the schedule that has been updated) when the combined consumption estimate 506 is below the consumption threshold 302 for the upcoming time slots. The method 600 can feedback to the box 608 and further process new transactions.
[0052] At a box 618, the memory device 102 can adjust the processed schedule and/or generate the updated schedule 508, which is different from the processed schedule, for executing the transactions 130 in the operation stack 140 when the combined consumption estimate 506 is equal to or greater than the consumption threshold 302 for the upcoming time slots. For example, the controller 106 can delay execution of a transaction, suspend an ongoing transaction in the midst of execution, restart or complete the remaining part of the suspended transaction, reallocate the transaction for execution using a different memory component, or a combination thereof.
[0053] At a box 632, the controller 106 can adjust or generate based on identifying a timing or a time slot where the combined consumption estimate 506 exceeds the consumption threshold 302. The controller 106 can further identify the particular transaction associated with the time slot or the timing with the exceeding power consumption. The controller 106 can further identify the transient load spikes 204 of FIG. 2 associated with the scheduled transactions.
[0054] At a box 634, the controller 106 can determine a mechanism for adjusting the schedule and/or generating the updated schedule 508. For example, the controller 106 can delay execution, suspend or restart, reallocate, or a combination thereof for one or more of the transactions associated with exceeding power consumption at an upcoming time. Also for example, the controller 106 can delay execution, suspend or restart, reallocate, or a combination thereof for one or more of the transactions scheduled before or after the time slot corresponding to the exceeding power consumption. Also for example, the controller 106 can follow an order of operation or importance in generating the updated schedule 508, such as by rescheduling the write operation 134 and/or the erase operation 136 before the read operation 132 and then implementing the most recent operation first.
[0055] The updated schedule 508 can be fed back to the box 614 and evaluated as discussed above. For example, the controller 106 can generate the consumption estimate profile 504, calculate and evaluate the combined consumption estimate 506, and compare the combined consumption estimate 506 against the consumption threshold 302.
[0056] In some embodiments, the controller 106 can generate the updated schedule 508 based on generating a set number of possible schedules. The controller 106 can evaluate the multiple possible schedules, such as by calculating a score for each schedule based on a number of changes to the schedule, an overall delay to the set of the transactions 130, a maximum or a sustained power consumption, etc. The controller 106 can select one of the evaluated schedules based on the score (e.g., the schedule with the lowest or the highest score).
[0057] Calculating the updated schedule 508 based on the consumption estimate profile 504 that estimates or predicts the total power consumption provides enhanced efficiency and robustness for the memory device 102. The controller 106 can automatically use the updated schedule 508 to keep the total power consumption level below a maximum, which can lead to a reduction in unnecessary power capacity (e.g., thereby logically increasing the performance within the allotted power budget), and also prevent any brown-outs for power supplies.
[0058] FIG. 7 is a schematic view of a system that includes a memory device in accordance with embodiments of the present technology. Any one of the foregoing memory devices described above with reference to FIGs. 1-6 can be incorporated into any of a myriad of larger and/or more complex systems, a representative example of which is system 780 shown schematically in FIG. 7. The system 780 can include a memory device 700, a power source 782, a driver 784, a processor 786, and/or other subsystems or components 788. The memory device 700 can include features generally similar to those of the memory device described above with reference to FIGs. 1-6, and can therefore include various features for performing the operations discussed above. The resulting system 780 can perform any of a wide variety of functions, such as memory storage, data processing, and/or other suitable functions. Accordingly, representative systems 780 can include, without limitation, hand-held devices (e.g., mobile phones, tablets, digital readers, and digital audio players), computers, vehicles, appliances and other products. Components of the system 780 may be housed in a single unit or distributed over multiple, interconnected units (e.g., through a communications network). The components of the system 780 can also include remote devices and any of a wide variety of computer readable media.
[0059] From the foregoing, it will be appreciated that specific embodiments of the technology have been described herein for purposes of illustration, but that various modifications may be made without deviating from the disclosure. In addition, certain aspects of the new technology described in the context of particular embodiments may also be combined or eliminated in other embodiments. Moreover, although advantages associated with certain embodiments of the new technology have been described in the context of those embodiments, other embodiments may also exhibit such advantages and not all embodiments need necessarily exhibit such advantages to fall within the scope of the technology. Accordingly, the disclosure and associated technology can encompass other embodiments not expressly shown or described herein.

Claims

CLAIMS I/We claim:
1. A memory device, comprising:
a memory array including a plurality of memory components; and
a controller coupled to the memory array, the controller configured to:
determine a set of transactions to be implemented across two or more memory components according to an initial schedule;
calculate a first plurality of power consumption levels corresponding to the initial schedule; and
if one or more of the power consumption levels exceed a predetermined threshold, calculate an updated schedule for implementing the set of transactions across the two or more memory components, wherein the updated schedule corresponds to a second plurality of power consumption levels that are all at or below the predetermined threshold.
2. The memory device of claim 1 wherein the controller is configured to calculate the first plurality of power consumption levels based on load profiles that each include sampled power values representative of memory transactions.
3. The memory device of claim 2 wherein the controller is configured to:
calculate the updated schedule based on calculating a combined consumption by adding the sampled values of the load profiles corresponding to transactions in the initial schedule; and
determine if one or more of the power consumption levels exceed the predetermined threshold based on comparing the combined consumption at upcoming time slots to the predetermined threshold.
4. The memory device of claim 1 wherein the controller is configured to:
receive the set of transactions or a portion thereof from a host device, wherein the set of transactions or the portion thereof are received according to an incoming sequence; and
calculate the updated schedule different than the incoming sequence.
5. The memory device of claim 4 wherein the controller is configured to:
receive the set of transactions including a first transaction received before a second transaction; and
calculate the updated schedule for implementing the second transaction before the first transaction.
6. The memory device of claim 4 wherein the controller is configured to:
receive the set of transactions including a transaction designated for implementation with a memory component; and
calculate the updated schedule including implementing the transaction with a different memory component.
7. The memory device of claim 4 wherein the controller is configured to:
receive the set of transactions including a transaction; and
calculate the updated schedule for suspending an ongoing transaction while implementing the transaction.
8. The memory device of claim 1 wherein the controller is configured to calculate the updated schedule according to transaction types.
9. The memory device of claim 8 wherein the controller is configured to delay or suspend a write operation or an erase operation before delaying or suspending a read operation.
10. The memory device of claim 1 wherein the load profiles each include predetermined values that correspond to a set of measurements of the corresponding transaction type implemented on one memory component for the memory device, wherein the load profiles is for representing the corresponding transaction type implemented on the memory components within the memory device.
11. The memory device of claim 1 wherein the controller is configured to reschedule the set of transactions within an operation stack.
12. The memory device of claim 1 wherein the memory components are NAND dies.
13. The memory device of claim 1 further comprising:
a power circuitry, coupled to the controller, configured to provide filtered power to the memory array and the controller; and
wherein:
the load profiles represent the power consumption level corresponding to the filtered power.
14. The memory device of claim 1 wherein the updated schedule includes concurrent implementation of two or more transactions.
15. A method of operating a memory device including a controller and a memory array including memory components, the method comprising:
determining a set of transactions to be implemented across two or more memory components according to an initial schedule;
calculating a first plurality of power consumption levels corresponding to the initial schedule; and
if one or more of the power consumption levels exceed a predetermined threshold, calculating an updated schedule for implementing the set of transactions across the two or more memory components, wherein the updated schedule corresponds to a second plurality of power consumption levels that are all at or below the predetermined threshold.
16. The method of claim 15, wherein calculating the first plurality of power consumption levels includes identifying load profiles corresponding to memory transactions in the initial schedule, wherein the load profiles each include sampled power values representing the power consumption level sampled at a sampling frequency for the corresponding transaction.
17. The method of claim 16, wherein calculating the updated schedule includes:
calculating a combined consumption by adding the sampled values of the load profiles corresponding to transactions in the initial schedule; and determining if one or more of the power consumption levels exceed the predetermined threshold based on comparing the combined consumption at upcoming time slots to the predetermined threshold.
18. The method of claim 15, further comprising:
receiving the set of transactions or a portion thereof from a host device, wherein the set of transactions or the portion thereof are received according to an incoming sequence; and
wherein calculating the updated schedule includes calculating the updated schedule that is different than the incoming sequence.
19. The method of claim 15, wherein:
receiving the set of transactions or a portion thereof includes receiving a first transaction and a second transaction, wherein the first transaction is intended for implementation on a particular component before the second transaction according to the incoming sequence; and
wherein calculating the updated schedule includes calculating the updated schedule for implementing the second transaction before the first transaction, for implementing the first transaction on a different component, for suspending one of the transactions while implementing the other transaction, or a combination thereof.
20. A method of operating a memory device including a controller, a memory array having memory components, and a power circuit, the method comprising:
executing a transaction, wherein the transaction is one of at least a read operation, a write operation, or an erase operation implemented on a representative component for the memory device, wherein the representative component corresponds to the memory components;
measuring a power consumption level corresponding to the implementation of the transaction; and
generate a load profile based on the power consumption level, wherein the load profile includes a set of consumption sample values representing the power consumption level sampled at a sampling frequency, wherein the load profile is for characterizing power consumption of implementing the transaction on any of the memory components in the memory device.
PCT/US2018/046766 2017-08-31 2018-08-14 Memory device with power management WO2019046018A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020207008681A KR102413479B1 (en) 2017-08-31 2018-08-14 Memory device with power management function
EP18849904.0A EP3676686A4 (en) 2017-08-31 2018-08-14 Memory device with power management
CN201880055269.6A CN111052067A (en) 2017-08-31 2018-08-14 Memory device with power management

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/692,553 US10831384B2 (en) 2017-08-31 2017-08-31 Memory device with power management
US15/692,553 2017-08-31

Publications (1)

Publication Number Publication Date
WO2019046018A1 true WO2019046018A1 (en) 2019-03-07

Family

ID=65435168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2018/046766 WO2019046018A1 (en) 2017-08-31 2018-08-14 Memory device with power management

Country Status (5)

Country Link
US (1) US10831384B2 (en)
EP (1) EP3676686A4 (en)
KR (1) KR102413479B1 (en)
CN (1) CN111052067A (en)
WO (1) WO2019046018A1 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102615227B1 (en) * 2018-02-01 2023-12-18 에스케이하이닉스 주식회사 Memory system and operating method thereof
US11481016B2 (en) * 2018-03-02 2022-10-25 Samsung Electronics Co., Ltd. Method and apparatus for self-regulating power usage and power consumption in ethernet SSD storage systems
US11500439B2 (en) 2018-03-02 2022-11-15 Samsung Electronics Co., Ltd. Method and apparatus for performing power analytics of a storage system
KR102601152B1 (en) * 2019-05-10 2023-11-13 에스케이하이닉스 주식회사 Memory controller and operating method thereof
US11079822B2 (en) * 2019-06-28 2021-08-03 Western Digital Technologies, Inc. Integrated power and thermal management in non-volatile memory
US11550737B2 (en) * 2019-07-31 2023-01-10 Micron Technology, Inc. Adjusting characteristic of system based on profile
US11775185B2 (en) * 2020-09-17 2023-10-03 Micron Technology, Inc. Power budget arbitration for multiple concurrent access operations in a memory device
US11990197B2 (en) * 2020-12-21 2024-05-21 Micron Technology, Inc. Peak power management connectivity check in a memory device
CN112598381A (en) * 2020-12-22 2021-04-02 深圳市公狼科技有限公司 Electronic commerce order importing method, system, equipment and readable storage medium
US11592894B2 (en) * 2021-04-12 2023-02-28 Dell Products L.P. Increasing power efficiency for an information handling system
WO2022252120A1 (en) 2021-06-01 2022-12-08 Yangtze Memory Technologies Co., Ltd. Power management for memory system
KR20230097169A (en) 2021-06-01 2023-06-30 양쯔 메모리 테크놀로지스 씨오., 엘티디. Power management of memory systems
US12118219B2 (en) 2022-09-06 2024-10-15 SanDisk Technologies, Inc. Asymmetric time division peak power management (TD-PPM) timing windows
US11893253B1 (en) * 2022-09-20 2024-02-06 Western Digital Technologies, Inc. Dynamic TD-PPM state and die mapping in multi-NAND channels

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
US20070220293A1 (en) * 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US20070288783A1 (en) * 2006-03-31 2007-12-13 Katsuhisa Ogasawara Power consumption decrease memory management method
US20080040563A1 (en) * 2006-08-10 2008-02-14 International Business Machines Corporation Systems and methods for memory module power management
US20080168287A1 (en) * 2007-01-10 2008-07-10 Ibm Corporation Method and Apparatus for Power Throttling a Processor in an Information Handling System

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7127573B1 (en) * 2000-05-04 2006-10-24 Advanced Micro Devices, Inc. Memory controller providing multiple power modes for accessing memory devices by reordering memory transactions
US7412614B2 (en) * 2004-04-29 2008-08-12 Hewlett-Packard Development Company, L.P. Power management using a pre-determined thermal characteristic of a memory module
KR100770703B1 (en) * 2006-08-30 2007-10-29 삼성전자주식회사 Memory system with power throttling scheme based on power parameter of memory device
US20130290611A1 (en) * 2012-03-23 2013-10-31 Violin Memory Inc. Power management in a flash memory
US10013345B2 (en) * 2014-09-17 2018-07-03 Sandisk Technologies Llc Storage module and method for scheduling memory operations for peak-power management and balancing
JP2016212580A (en) * 2015-05-07 2016-12-15 富士通株式会社 Semiconductor storage device, control method thereof, and control program
US9977487B2 (en) * 2015-09-22 2018-05-22 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US9711232B2 (en) * 2015-09-22 2017-07-18 Samsung Electronics Co., Ltd. Dynamic non-volatile memory operation scheduling for controlling power consumption of solid-state drives
US10120817B2 (en) * 2015-09-30 2018-11-06 Toshiba Memory Corporation Device and method for scheduling commands in a solid state drive to reduce peak power consumption levels
US9997235B2 (en) * 2015-12-17 2018-06-12 Taiwan Semiconductor Manufacturing Co., Ltd. Semiconductor memory with respective power voltages for plurality of memory cells

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070011421A1 (en) * 2005-07-07 2007-01-11 Keller Thomas W Jr Method and system for decreasing power consumption in memory arrays having usage-driven power management
US20070220293A1 (en) * 2006-03-16 2007-09-20 Toshiba America Electronic Components Systems and methods for managing power consumption in data processors using execution mode selection
US20070288783A1 (en) * 2006-03-31 2007-12-13 Katsuhisa Ogasawara Power consumption decrease memory management method
US20080040563A1 (en) * 2006-08-10 2008-02-14 International Business Machines Corporation Systems and methods for memory module power management
US20080168287A1 (en) * 2007-01-10 2008-07-10 Ibm Corporation Method and Apparatus for Power Throttling a Processor in an Information Handling System

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3676686A4 *

Also Published As

Publication number Publication date
KR102413479B1 (en) 2022-06-27
US20190065089A1 (en) 2019-02-28
EP3676686A4 (en) 2021-05-26
KR20200035329A (en) 2020-04-02
CN111052067A (en) 2020-04-21
US10831384B2 (en) 2020-11-10
EP3676686A1 (en) 2020-07-08

Similar Documents

Publication Publication Date Title
US10831384B2 (en) Memory device with power management
KR101363844B1 (en) Methods and systems for dynamically controlling operations in a non-volatile memory to limit power consumption
AU2011203893B2 (en) Controlling and staggering operations to limit current spikes
US10643711B1 (en) Workload based dynamic erase suspend adaptation
US8769318B2 (en) Asynchronous management of access requests to control power consumption
US10133506B2 (en) Systems and methods for managing non-volatile memory based on temperature
US20190065365A1 (en) Memory device with dynamic storage mode control
US20190065366A1 (en) Memory device with dynamic cache management
US20190004723A1 (en) Throttling components of a storage device
US9361951B2 (en) Statistical peak-current management in non-volatile memory devices
US9952779B2 (en) Parallel scheduling of write commands to multiple memory devices
US9423961B2 (en) Method to enhance programming performance in multilevel NVM devices
AU2014100558A4 (en) Controlling and staggering operations to limit current spikes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18849904

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20207008681

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2018849904

Country of ref document: EP

Effective date: 20200331