WO2022245371A1 - Dynamic power management of ddr subsystem using statistical control - Google Patents

Dynamic power management of ddr subsystem using statistical control Download PDF

Info

Publication number
WO2022245371A1
WO2022245371A1 PCT/US2021/033679 US2021033679W WO2022245371A1 WO 2022245371 A1 WO2022245371 A1 WO 2022245371A1 US 2021033679 W US2021033679 W US 2021033679W WO 2022245371 A1 WO2022245371 A1 WO 2022245371A1
Authority
WO
WIPO (PCT)
Prior art keywords
low
power mode
memory controller
latency
power
Prior art date
Application number
PCT/US2021/033679
Other languages
French (fr)
Inventor
Haobin LUO
Original Assignee
Zeku, 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 Zeku, Inc. filed Critical Zeku, Inc.
Priority to CN202180098371.6A priority Critical patent/CN117337419A/en
Priority to PCT/US2021/033679 priority patent/WO2022245371A1/en
Publication of WO2022245371A1 publication Critical patent/WO2022245371A1/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/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
    • 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
    • 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

Abstract

Novel tools and techniques are provided for dynamic power management using statistical control are provided. A system includes a double data rate (DDR) physical interface (PHY), and a memory controller. The memory controller may identify low-power modes satisfying an aggregated system latency requirement based on power and latency characteristics of respective low-power modes. The memory controller may determine a minimum probability that a time slot is idle, ρ0, to ensure power saving by entering the low-power mode. A statistical test of the low-power mode is performed for a statistical hypothesis that ρ ≥ ρ0, wherein ρ refers to the underlying probability of a time slot being idle. The low-power mode may be entered based on a result of the statistical test.

Description

DYNAMIC POWER MANAGEMENT OF DDR SUBSYSTEM USING STATISTICAL CONTROL
COPYRIGHT STATEMENT
[0001] A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
FIELD
[0002] The present disclosure relates, in general, to methods, systems, and apparatuses for power management of a dynamic random access memory (DRAM) device, and, more particularly, to methods, systems, and apparatuses for power management of a DRAM subsystem using statistical control.
BACKGROUND
[0003] As power usage and efficiency in mobile devices has become increasingly critical, modem dynamic random access memory (DRAM) devices have become increasingly optimized for use in mobile environments. Low-power DRAM (LPDRAM) devices, such as low-power double data rate (LPDDR) synchronous DRAM (SDRAM) have been developed to address power management and control schemes for power consumption by the memory array. However, inefficiencies and bottlenecks for power consumption still exist in the DDR subsystem controlling access to DRAM devices, the DDR subsystem including, for example, the DDR memory controller and DDR PHY.
[0004] Therefore, methods, systems, and apparatuses for dynamic power management of the DDR subsystem are provided. SUMMARY
[0005] Novel tools and techniques are provided for dynamic power management using statistical control are provided. A system includes a double data rate (DDR) physical interface (PHY), and a memory controller. The memory controller may identify low-power modes satisfying an aggregated system latency requirement based on power and latency characteristics of respective low-power modes. The memory controller may determine a minimum probability that a time slot is idle, pO, to ensure power saving by entering the low-power mode. A statistical test of the low-power mode is performed for a statistical hypothesis that p > pO, wherein p refers to the underlying probability of a time slot being idle. The low-power mode may be entered based on a result of the statistical test.
[0006] According to an embodiment, the present invention provides a method that includes obtaining, via a memory controller, an aggregated system latency requirement for a memory system comprising the memory controller. The method also includes determining, via the memory controller, a power characteristic and a latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and an idle active power consumption, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode. The method further includes determining, via the memory controller, whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement. The method also includes, in response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement, determining, via the memory controller, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode. The method further includes performing, via the memory controller, a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p is associated with a probability that the time slot is idle. The method also includes, based on a result of the statistical test, causing, via the memory controller, the memory system to enter the low-power mode. [0007] According to another embodiment, the present invention provides an apparatus that includes a processor. The apparatus also includes a non-transitory computer readable medium in communication with the processor. The non-transitory computer readable medium has encoded thereon a set of instructions executable by the processor to: obtain an aggregated system latency requirement for a memory system determine a power characteristic and latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low- power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode; determine whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement; in response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement: determine, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode; perform a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p is associated with a probability of a time slot being idle; and based on a result of the statistical test, cause the memory system to enter the low-power mode.
[0008] According to yet another embodiment, the present invention provides a memory subsystem that includes a double data rate physical interface (DDR PHY) in communication with a memory device. The subsystem also includes a memory controller coupled to the DDR PHY. The he memory controller includes a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to: obtain, via the memory controller, an aggregated system latency requirement for a memory system, wherein the aggregated system latency requirement is a minimum latency required by all clients of the memory system; determine, via the memory controller, a power characteristic and latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode; determine, via the memory controller, whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement; in response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement: determine, via the memory controller, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode; perform, via the memory controller, a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p is associated with a probability of a time slot being idle; and based on a result of the statistical test, cause, via the memory controller, the memory system to enter the low-power mode. It is to be appreciated that there are other embodiments as well.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] A further understanding of the nature and advantages of particular embodiments may be realized by reference to the remaining portions of the specification and the drawings, in which like reference numerals are used to refer to similar components. In some instances, a sub-label is associated with a reference numeral to denote one of multiple similar components. When reference is made to a reference numeral without specification to an existing sub-label, it is intended to refer to all such multiple similar components.
[0010] Fig. 1 is a schematic diagram of a memory system for dynamic power management using statistical control, in accordance with various embodiments;
[0011] Fig. 2 is a schematic diagram of a memory controller for dynamic power management using statistical control, in accordance with various embodiments;
[0012] Fig. 3 is a schematic diagram of LPM control logic for implementing dynamic power management using statistical control, in accordance with various embodiments;
[0013] Fig. 4 is a schematic diagram of a DDR PHY for dynamic power management using statistical control, in accordance with various embodiments;
[0014] Fig. 5 is a flow diagram of a method of dynamic power management of a DDR subsystem using statistical control, in accordance with various embodiments; and
[0015] Fig. 6 is a flow diagram of a method of a statistical test for dynamic power management of the DDR subsystem, in accordance with various embodiments. DETAILED DESCRIPTION
[0016] Various embodiments provide tools and techniques for dynamic power management using statistical control.
[0017] In an aspect, a method for dynamic power management using statistical control is provided. The method includes obtaining, via a memory controller, an aggregated system latency requirement for a memory system. The method may continue by determining, via the memory controller, a power characteristic and latency characteristic for a low-power mode of a memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode. The method further includes, determining, via the memory controller, whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement. In response to determining that the total latency of the low- power mode is less than or equal to aggregated system latency requirement, the method may further include determining, via the memory controller, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode, and performing, via the memory controller, a statistical test of the low-power mode for a statistical hypothesis that p > po. For example, p refers to the underlying probability of a time slot being idle, which is not itself related to the number of samples. The statistical test above is to estimate if the probability is above the calculated po for each LPM mode.
[0018] The method may continue by causing, via the memory controller, the low-power mode to be entered, based on a result of the statistical test.
[0019] In some examples, the statistical test may be a Z-test, and wherein performing the statistical test includes performing the Z-test. Performing the Z-test may include determining a Z-score for the low-power mode based on p and pO, and determining, based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level. The result of the statistical test may be an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z-score is greater than or equal to the threshold Z- score, the low-power mode is entered. [0020] In a further example, determining the Z-score may further include determining, based on the threshold confidence level, the total number of samples n to be collected, and initializing a shift register of length n. The method may further include obtaining a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low-power mode (i.e., latency of entering and exiting the low- power mode), wherein the sample is an indication of whether one or more lines of a memory system is idle, and writing a value of the sample to the shift register every time period Is. the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period Is and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed. The method may continue by determining a total number of samples in which the one or more lines of the memory system are idle of the most recent n samples, wherein p refers to the underlying probability of a time slot being idle.
[0021] In some examples, the method may further include monitoring one or more lines of a double data rate PHY interface bus for activity, and determining an activity state of the one or more lines of the double data rate PHY interface bus, wherein the activity state is indicative of whether the one or more lines are idle. In some examples, entering the low-power mode further includes causing, via the memory controller, at least one of a double data rate physical interface or the memory controller to enter the low-power mode.
[0022] In another aspect, an apparatus for dynamic power management using statistical control is provided. The apparatus may include a processor, and a non- transitory computer readable medium in communication with the processor, the non- transitory computer readable medium having encoded thereon a set of instructions executable by the processor to perform various functions. The set of instructions may be executable by the processor to obtain an aggregated system latency requirement for a memory system, and determine a power characteristic and latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode. Based on the above, it may be determined whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement. In response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement, it may be determined, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode. The instructions may further be executed to perform a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p refers to the underlying probability of a time slot being idle, and based on a result of the statistical test, cause the memory system to enter the low-power.
[0023] In some examples, the statistical test may be a Z-test. To perform the
Z-test, the set of instructions may further be executable by the processor to determine a Z-score for the low-power mode based on p and pO, and determine, based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level. The result of the statistical test may be an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z- score is greater than or equal to the threshold Z-score, the low-power mode is entered.
[0024] In some further examples, the set of instructions may further be executable by the processor to determine, based on the threshold confidence level, the total number of samples n to be collected. Based on the above determination, the processor may further initialize a shift register of length n. obtain a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low- power mode, wherein the sample is an indication of whether one or more lines of a memory system is idle, and write a value of the sample to the shift register every time period ts, the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period ts and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed. A total number of samples may be determined in which the one or more lines of the memory system are idle of the most recent n samples, wherein p refers to the underlying probability of a time slot being idle.
[0025] In some examples, the set of instructions may further be executed by the processor to monitor one or more lines of a double data rate PHY interface bus for activity, and determine an activity state of the one or more lines of the double data rate PHY interface bus, wherein the activity state is indicative of whether the one or more lines are idle.
[0026] In a further aspect, a system for dynamic power management using statistical control is provided. The system includes a double data rate physical interface (DDR PHY) in communication with a memory device, and a memory controller coupled to the DDR PHY. The memory controller may further include a processor, and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to perform various functions. For example, the set of instructions may be executable by the processor to obtain, via the memory controller, an aggregated system latency requirement for a memory system, wherein the aggregated system latency requirement is a minimum latency required by all clients of the memory system. The instructions may further be executed by the processor to determine, via the memory controller, a power characteristic and latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode. Based on the above, it may be determined, via the memory controller, whether the total latency of the low- power mode is less than or equal to the aggregated system latency requirement. In response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement, it may be determined, via the memory controller, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode. The instructions may further be executable by the processor to perform, via the memory controller, a statistical test of the low-power mode for a statistical hypothesis that p > po, and based on a result of the statistical test, cause the memory system to enter the low-power mode.
[0027] In some examples, the statistical test may be a Z-test. To perform the
Z-test, the set of instructions may further be executable by the processor to determine a Z-score for the low-power mode based on p and pO, and determine, based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level. The result of the statistical test may be an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z- score is greater than or equal to the threshold Z-score, the low-power mode is entered. In some examples, performing the Z-test may further include determining, via the memory controller, a Z-score for the low-power mode based on p and pO, and determining, via the memory controller and based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level. The result of the statistical test may be an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z-score is greater than or equal to the threshold Z-score, the low-power mode is entered.
[0028] In some examples, the instructions may further be executable by the processor to determine, via the memory controller and based on the threshold confidence level, the total number of samples n to be collected, initialize, via the memory controller, a shift register of length n, and obtain, via the DDR PHY, a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low-power mode, wherein the sample is an indication of whether one or more lines of a memory system are idle. The instructions may further be executed to write, via the memory controller, a value of the sample to the shift register every time period is. the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period is and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed. A total number of samples in which the one or more lines of the memory system are idle of the most recent n samples may be determined, wherein p is associated with a probability of a time slot being idle.
[0029] In further examples, the instructions may further be executable to monitor, via the memory controller, one or more lines of a DDR PHY interface (DFI) bus for activity, and determine, via the memory controller, an activity state of the one or more lines of the DFI bus, wherein the activity state is indicative of whether the one or more lines of the DFI bus are idle. In yet further examples, causing, via the memory controller, the memory system to enter the low-power mode may further comprise causing, via the memory controller, at least one of the DDR PHY or the memory controller to enter the low-power mode. [0030] While various aspects and features of some embodiments have been summarized above, the following detailed description illustrates a few embodiments in further detail to enable one of skill in the art to practice such embodiments. The described examples are provided for illustrative purposes and are not intended to limit the scope of the invention.
[0031] In the following description, for the purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the described embodiments. It will be apparent to one skilled in the art, however, that other embodiments may be practiced without some of these details. In other instances, some structures and devices are shown in block diagram form. Several embodiments are described herein, and while various features are ascribed to different embodiments, it should be appreciated that the features described with respect to one embodiment may be incorporated with other embodiments as well. By the same token, however, no single feature or features of any described embodiment should be considered essential to every embodiment of the invention, as other embodiments of the invention may omit such features.
[0032] Unless otherwise indicated, all numbers used herein to express quantities, dimensions, and so forth used should be understood as being modified in all instances by the term "about." In this application, the use of the singular includes the plural unless specifically stated otherwise, and use of the terms "and" and "or" means "and/or" unless otherwise indicated. Moreover, the use of the term "including," as well as other forms, such as "includes" and "included," should be considered non exclusive. Also, terms such as "element" or "component" encompass both elements and components comprising one unit and elements and components that comprise more than one unit, unless specifically stated otherwise.
[0033] Various embodiments are described herein, embodying software products and computer-performed methods, represent tangible, concrete improvements to existing technological areas, including, without limitation, power management in memory systems. In other aspects, some embodiments can improve the functioning of the memory device itself, by enabling more efficient LPM management techniques. [0034] To the extent any abstract concepts are present in the various embodiments, those concepts can be implemented as described herein by devices, software, systems, and methods that involve novel functionality (e.g., steps or operations), such as using a statistical control framework to dynamically manage power modes in a memory device and/or memory subsystem.
[0035] Fig. 1 is a schematic diagram of a memory system 100 for dynamic power management using statistical control, in accordance with various embodiments. The system 100 includes a memory device 120 and dual data rate (DDR) subsystem 145. The DDR subsystem 145 includes a memory controller 105, which further includes low-power mode (LPM) control 110, DDR physical interface (PHY), and clock generator 135. The memory device 120 includes memory array 125, clock input circuit 130, address command input circuit 135, and I/O circuit 140. It should be noted that the various components of system 100 are schematically illustrated in Fig.
1, and that modifications to system 100 may be possible in accordance with the various embodiments.
[0036] The DDR subsystem 145 may include a memory subsystem, allowing a host device (e.g., one or more processing cores of a system on a chip (SoC), processor, or other IC) to communicate with the memory device 120. Accordingly, in some embodiments, the DDR subsystem 145 includes the DDR controller 105 and DDR PHY 115. In some further embodiments, the DDR subsystem may include clock generator 135. The memory controller 105 may further include LPM control block 110. Memory controller 105 may be coupled to the DDR PHY 115, which is the physical interface between the memory controller 105 and memory device 120. Thus, the DDR PHY 115 may, in turn, be coupled to the memory device 120. Clock generator 135 may be coupled to both memory controller 105 and DDR PHY 115.
[0037] As shown, the memory device 120 may include a clock input circuit
130, address command input circuit 135, and I/O 140, which may further be coupled to the memory array 125. In some embodiments, the DDR PHY 115 may be coupled to one or more of the clock input circuit 130, address command input circuit 135, and I/O circuit 140 via one or more respective buses. In some examples, one or more of the respective buses may be referred to collectively as part of a DDR PHY interface (DFI) bus, communicating via the DFI protocol, as known to those skilled in the art. The clock input circuit 130, address command input circuit 135, and I/O circuit 140 may be configured to control access to the memory array 125 by decoding commands and address information (e.g., row and column address signals), and controlling the flow of data to and from the DDR PHY 115.
[0001] In various embodiments, the memory device 120 may include an SDRAM device. In some examples, the SDRAM devices may include, without limitation, LPDDR devices, such as LPDDR2, LPDDR3, LPDDR4, LPDDR4x, and LPDDR5. The memory device 120 may be configured to receive a signal from the memory controller 105 via the DDR subsystem 145. The memory device 120 may, thus, be configured to receive various commands, address information, and control signals from the DDR PHY 115 of the DDR subsystem 145. The memory device 120 may further be configured to receive data from the DDR subsystem 145 to be written to the memory array 125, and transmit data to the DDR subsystem 145, to be used by the host device. Signal inputs from the DDR PHY 115 may include, for example, a clock signal (CK), clock enable (CKE) received via control and/or clock lines, various commands and addresses on one or more command address (C/A) lines (e.g., a C/A bus), and data signals (DQ, DQS, DQM) on respective data lines. The memory array 125 may, thus, be an array of memory cells, which may include, for example, volatile memory cells (e.g., dynamic random-access memory (DRAM) memory cells, low- power DRAM memory (LPDRAM), static random-access memory (SRAM) memory cells), non-volatile memory cells (e.g., flash memory cells), or other types of memory cells.
[0038] Thus, in various embodiments, the DDR subsystem 145 may be configured to allow the memory controller 105 to communicate with the memory device 120, and to send and receive data to and from the memory array 125. The memory controller 105 is a dedicated digital circuit that manages data written to and read from the memory device 120. The memory controller 105 further provides control signals and other commands that control the operation of the memory device 120, including operation under various LPM. LPMs for DRAM may include, for example, and without limitation, standby and fast low-power states, light sleep and deep sleep states, powerdown states (including precharge powerdown, deep powerdown), and self-refresh modes (including partial array self-refresh, temperature- compensated self-refresh, and other self-refresh modes). Thus, the memory controller 105 may be configured to send commands to place the memory device 120 into the various DRAM LPMs.
[0039] In some embodiments, the memory controller 105 may be a dedicated memory controller 105 external to a host processor or SoC. Alternatively, in some embodiments, the memory controller 105 may be an on-die / on-chip memory controller (e.g., an integrated memory controller). Examples of the memory controller 105 are described in greater detail below with respect to Fig. 2. In some embodiments, the memory controller 105 may receive commands and requests for data (read and write), from the host device. The memory controller 105 may further be configured to receive a clock signal from the clock generator 135. The clock generator 135 may further provide a clock signal to the DDR PHY 115. Accordingly, the clock generator 135 may provide a clock signal to both the memory controller 105 and DDR PHY 115 to be used for various internal clock signals.
[0040] The memory controller 105 may then process the commands to be sent to the DDR PHY 115. In some embodiments, the memory controller outputs to DDR PHY 115 may be transmitted via a DDR PHY interface, for example, using a DFI protocol. The DFI may include lines for transmitting clock signals (e.g., CK, CKE), command / address information (C/A), and data signals (DQ, DQS, DQM). In some further embodiments, the DFI may further include a low-power interface (LPI), through which commands and control signals controlling the operation of the DDR PHY 115, such as commands to enter/exit an LPM, may be communicated to the DDR PHY 115 by the memory controller 105. The memory controller 105 is described in further detail below with respect to Fig. 2, and the DDR PHY 115 is described in further detail below with respect to Fig. 4.
[0041] Thus, in various embodiments, like the memory device 120, the DDR subsystem 145 may further include one or more LPMs. DDR subsystem 145 LPMs may include, for example, without limitation, standby states, sleep states, and powerdown states. In each of the various DDR subsystem 145 LPMs, different approaches may be used to reduce the power consumption of the respective components of the DDR subsystem 145. For example, LPMs may cause some components, such as delay-locked loops (DLLs), phase-locked loops (PLLs), to be power gated and/or clock gated. Thus, power gating includes gating off (e.g., shutting off, blocking, or otherwise disconnecting) supply power (e.g., supply voltage) to one or more components and/or parts of a circuit in the DDR PHY 115 and/or memory controller 105. Clock gating may refer to the process of gating off a clock signal provided to the DDR PHY 115 and/or memory controller 105.
[0042] Accordingly, the memory controller 105 may be configured to manage power usage in by the DDR subsystem 145 by entering and exiting LPMs. In some embodiments, the memory controller 105 may further include LPM control 110. LPM control 110 may include, for example, may include logic that is implemented in hardware, software, or as a combination of both hardware and software, to implement an LPM control algorithm. In a hardware implementation, for example, the LPM control 110 may be implemented as a circuit, such as an IC, FPGA, etc. LPM control 110 may, in further embodiments, include software implementation. Accordingly, LPM control 110 may be, for example, non-transitory computer readable media comprising a set of computer readable instructions, executable by the memory controller 105. The LPM control 110 logic is set forth in further detail below with respect to Fig. 3.
[0043] Conventional approaches to LPM management in the DDR subsystem
145 rely on a static, pre-defmed timeout value (e.g., time spent idle) to determine when and what level of LPM to enter. This leads to inefficiencies that are unable to adapt to real-time activity and workload conditions. The LPM control logic 110 thus implements a dynamic approach to LPM management, using a real-time statistical prediction of system activity to make an LPM selection. In various embodiments, the LPM control algorithm may be a statistical control algorithm, as will be described below.
[0044] In some embodiments, the statistical control algorithm may include a
Z-test based control algorithm. To implement the Z-test based algorithm, a first time period, such as an idle time period, may be divided into time slots of a fixed length of time. Thus, the first time period may be divided into a number of time slots N. The length of the time slot may be denoted as ts, and the total latency for entering and wakeup/activation from an associated LPM may be denoted as ta. For example, the term “total latency” refers to the latency associated with entering and existing the low-power mode (LPM), where the latency of entering the LPM is typically much shorter but not negligible compared to the latency of existing (ta) the LPM. As an example, existing the LMP mode typically involves transition from LMP to an active idle state. In some examples, ta may be a latency associated wakeup for the memory device 120, DDR subsystem 145, an individual component of the DDR subsystem 145 such as the memory controller 105 and/or DDR PHY 115, or a combination of the memory device 120, memory controller 105, and/or DDR PHY 115. The ta may vary based on the LPM and be specific to a respective LPM.
[0045] In various embodiments, as a timer is used to keep track of idle state.
For example, the timer may be implemented as a part of the DDR subsystem. When the system is not in the idle state, the timer maintains its current value and is not running (i.e., the timer value is the total idle duration of the previous idle period). As the system enters an idle state, the timer value is reset (e.g., set to zero) to then start running. When the system transitions from the idle state to the active state, the timer is stopped with its current value. During the initialization process for the whole system, the timer value is set to 0. Using the timer, polling for each LPM as following may be implemented in some embodiments. When the system transitions from the idle state to the active state, for each possible LPM mode, if the samples are not updated yet then make sure to log a bad time slot into the sliding log window for this LPM mode. Then update the logging status for this LPM mode as already updated. When the system is in an idle state with the idle timer running, for each LPM mode, the logging happens for every ta time elapsed if the DDR controller itself is still capable of doing the logging. Otherwise, the process waits until when the system is capable of logging and calculate how many to time periods have elapsed and update the corresponding number of time slots accordingly.
[0046] In the event that a given time slot is bad meaning the system should be or is awake (e.g., active) during a given time slot, the power penalty, denoted as Pioss, will be no more than taP . As an example, the term P, refers to the idle power of the system, which is defined as the power consumption of the system in idle without using any low-power mode (sometimes also referred to as idle active power). In other words, the power penalty will be, at most, a product of the time it takes to enter to and exit from an LPM and the idle active power, P,. If it is a good time slot, meaning the system is idle, the power gain, Pgmn, by operating in a TPM is ts(P-Pi), where Pi is the power consumed in the respective LPM.
[0047] Based on the above, the goal is to determine whether the power gain
Pgam will be greater than the power loss Pioss in the long run over time. Considering p as the probability that a timeslot is good (e.g., idle), the total power gain may be expressed as:
Figure imgf000017_0001
(Eq. 1)
Therefore, if:
Figure imgf000017_0002
(Eq. 2)
Then a positive total power gain will be achieved.
[0048] Setting the length of the time slot is equal to a total latency ta, the following equation for positive total power gain may be obtained:
Pi
P > 2 Pl-Pl
(Eq. 3)
Where the minimum probability of a good time slot for a given LPM to have a positive total power gain, denoted as po, is given by the following equation:
Pi
P o = 2 Pl-Pl
(Eq. 4)
[0049] Given the above, the null hypothesis (Ho) may be expressed as Ho: p
> po, and the alternative hypothesis Hi expressed as Hi: p < po. That is, the null hypothesis is that entering the LPM mode will save power. Thus, for each LPM mode, a statistical test of the null hypothesis may be performed to determine whether, at a given time, a threshold confidence level is met to enter a respective LPM. Suitable threshold confidence levels may be selected according to application requirements. In some embodiments, a higher threshold confidence level may result in reduced power savings in the interest of maintaining low latency and higher performance (e.g., a less aggressively entering an LPM), whereas a lower threshold confidence level may result in increased power savings at the cost of performance (e.g., more aggressively entering an LPM).
[0050] In an example, the threshold confidence level may be selected as 95%.
In other embodiments, other threshold confidence levels, higher or lower, may be selected and used. For example, in some embodiments, a threshold confidence level greater than 95%, such as 99%, may be used. In other embodiments, a threshold confidence level less than 95%, such as 90%, may be used. When a threshold confidence level of 95% is used, the test is saying that if there is a 95% or greater confidence that the probability p is greater than po, then there is a 95% or greater confidence that entering the given LPM mode (e.g., at a given time slot that the Z- score is calculated) will save more power than staying in an active idle state.
[0051] This may be referred to as statistical hypothesis testing. A statistical hypothesis test in which the test statistic is approximated by a normal distribution is referred to as a Z-test. Thus, in various embodiments, the LPM control 110 logic may include instructions to perform or cause the memory controller 105 to control whether a respective LPM is entered based on a statistical test, such as, without limitation, a Z- test. For example, to perform a Z-test, the following may be determined:
Figure imgf000018_0001
(Eq. 5)
Where Z is the standard score (e.g., Z-score), x is the sample average (e.g., the number of good time slots divided by the total number of time slots sampled), po is used as the expected value of T, and s is the standard deviation of the sample. In this case, x may be p as determined over a sliding window of n samples. In some embodiments, the number of samples may be determined as a function of the threshold confidence level. That is, the number of samples needed increases with increased threshold confidence levels. In some embodiments, an n number of samples may be a number of samples exceeding the number needed to meet the threshold confidence level. In some examples, the number of samples n may be greater than or equal to 50.
[0052] The standard deviation of the sample, s, may be estimated as follows:
Figure imgf000018_0002
jpo(l-po) n
(Eq. 5)
[0053] Thus, the standard score (Z-score) may be determined over a sliding window of «-samples. A threshold Z-score may then be determined based on the threshold confidence level. For example, a Z > 1.65 may be needed to meet the threshold confidence level of 95%. In further embodiments, other types of statistical tests and methods may be used. For example, in some embodiments, a T-test / T-score may be utilized.
[0054] Thus, the LPM control 110 logic may be configured to determine, or cause the memory controller 105 to determine, a Z-score for each respective LPM. This process is described in greater detail below and with respect to Fig. 5. An aggregated system latency requirement may initially be determined. Based on the aggregated system latency requirement, it may be determined whether an LPM has a total latency that meets the aggregated system latency requirement. The aggregated system latency requirement may, in some embodiments, be an aggregated voted latency requirement. For example, the aggregated voted latency requirement may be a latency requirement taken from all the clients of the DDR subsystem 145. In this context, clients of the DDR subsystem may include any processing cores sharing access to the memory device 120 via the DDR subsystem 145. Thus, components of the aforementioned host device, such as one or more processing cores of an SoC, may be considered a client of the DDR subsystem 145.
[0055] Power and latency characteristics for one or more LPMs may then be determined by the memory controller 105 and/or LPM control 110 logic. LPMs with latency characteristics (e.g., total latency) exceeding the aggregated system latency requirement may be restricted from the selection. Respective Z-scores may then be determined for each of the respective LPMs with latency characteristics that do not exceed the aggregated system latency requirement, as previously set forth. For example, for each LPM, a respective p and po may be determined, based on respective Pi, Pi, ts, and ta values for the given LPM.
[0056] To determine p for a given LPM, an n number of samples (e.g., 50 samples) may be collected every ts, the ts corresponding to the total latency that includes entering latency and wakeup latency ta of the respective LPM. In some embodiments, the LPM control 110 logic may be configured to sample a status of the one or more buses of the memory system 100 and/or query the memory controller 105 regarding the status of the one or more buses. For example, the one or more buses may include, without limitation, the DFI, or other buses and lines, such as the C/A bus, data lines, and/or control lines between the DDR PHY 115 and the memory device 120. In some examples, it may be determined whether a dfi ctrlupd req signal is asserted, which may indicate that the control, read and write interfaces of the DFI are idle. In further embodiments, other DFI parameters, such as PHY-related parameters indicating a number of cycles of idle time on the DFI control line may be utilized. In some further embodiments, one or more lines of the DFI bus may be monitored for activity, such as the control line of the DFI bus. Monitoring for activity may include, for example, determining an activity state of one or more lines of the DFI bus. An activity state may, for example, indicate that the one or more lines are idle, or that the one or more lines are in use (e.g., active).
[0057] If the respective Z-score, based on the po for the LPM, is above the threshold Z-score, the LPM control 110 may set the LPM and/or cause the memory controller 105 to cause one or more components of the DDR subsystem 145 and/or memory device 120 to enter the LPM. The LPM control 110 may then further determine if there are additional LPMs that satisfy the aggregated system latency requirement, and determine a Z-score for each additional LPM. In some embodiments, the Z-score may be determined for LPMs in an order of increasing latency and power saving characteristics. For example, a Z-score may first be calculated for the least aggressive LPM having the lowest totally latency as well as the least power savings. Once it is determined to enter the LPM, it may subsequently be determined whether to enter a more aggressive LPM, having a higher total latency and more power savings. Alternatively, a Z-score may be calculated for LPMs in an order of decreasing latency and power saving characteristics. For example, a Z-score may first be calculated for the most aggressive LPM having the highest total latency and the more power savings. If the aggressive LPM is not entered, it may be determined whether to enter a less aggressive LPM. In yet further embodiments, Z- scores may be determined concurrently for one or more LPMs, the LPM control 110 determining to enter the most aggressive LPM meeting its respective threshold Z- score. In some embodiments, if no LPM modes meet the threshold Z-score, the DDR subsystem 145 and/or memory device 120 may remain in an active idle state.
[0058] In various embodiments, the LPMs may include LPMs of the DDR subsystem 145, an LPMs of the memory device 120, or LPMs of both the DDR subsystem 145 and memory device 120. Thus, the LPM control 110 may be configured to implement statistical control of LPMs either the DDR subsystem 145 and/or the memory device 120. Implementations of the LPM control 110 are set forth in further detail below with respect to Figs. 5 and 6.
[0059] Fig. 2 is a schematic diagram 200 of a memory controller 205 for dynamic power management using statistical control, in accordance with various embodiments. The memory controller 205 includes control and timing block 210, command queue 215, data control block 220, address logic 225, LPM control 230, initialization control 235, and refresh control 240. It should be noted that the various components of the memory controller 205 are schematically illustrated in Fig. 2, and that modifications to the memory controller 205 may be possible in accordance with the various embodiments.
[0060] In various embodiments, the control and timing block 210 may be coupled to the command queue 215, address logic 225, LPM control 230, initialization control 235, and refresh control 240. The control and timing block 210 may include, without limitation, command decoders and logic to generate appropriate commands and control signals, and timing circuits and logic for providing a clock/clock enable signal. The control and timing block may further include logic for decoding address data and/or extracting address data for decoding via the address logic 225. In some embodiments, the command queue 215 may receive multiple commands from one or more clients (e.g., one or more processor cores of a host device / SoC device). The commands may be queued by the command queue 215. The control and timing block 210 may, thus, translate the commands from the command queue 215 into sequences of command and control signals required by the memory device. The control and timing block 210 may further perform look-ahead functions to optimize efficiency and throughput.
[0061] In further embodiments, the control and timing block 210 may be configured to generate appropriate command and control signals for memory device power-up, initialization, and reset as generated by initialization control 235. The refresh control 240 may generate, or cause the control and timing block 210 to generate memory array refresh commands and control signals. The LPM control 230 may be configured to dynamically manage LPMs using a real-time statistical prediction of system activity to make an LPM selection, as previously described with respect to Fig. 1. The control blocks 230, 235, 240 may include, without limitation, control logic implemented in hardware, software executable by a processing core of the memory controller 205, or as a combination of both hardware and software.
[0062] The data control 220 may be configured to control the flow of data, received from a client to be written to memory, and received from memory requested by the client. Thus, in various embodiments, the data control 220 may comprise control logic and circuitry for managing the flow of data. For example, the data control 220 may include one or more read buffers and one or more write buffers for storing data, and control logic for appropriately asserting DQ, DQS, and DQM signals.
[0063] In various embodiments, the LPM control 230 may thus monitor activity (e.g., monitor for an idle state/activity) on one or more of the data lines, C/A lines, and control lines of the memory controller 205 (e.g., the DFI bus). In some embodiments, a status of the various lines may be requested and received from the control and timing block 210. The status of the various buses and/or lines may be polled/sampled at a rate corresponding to the total latencies of respective LPMs. The sampled data may then be stored, by the LPM control 230, as a sliding window of n samples.
[0064] When it has been determined to enter an LPM, in some embodiments, the LPM may be an LPM of the memory controller 205. As previously described, LPMs for the memory controller 205 may include entering one or more low-power states, in which all or part of the memory controller is selectively power gated and/or clock gated. For example, in some embodiments, one or more of the control and timing block 210, command queue 215, data control 220, address logic 225, or control blocks 230, 235, 240 may be power gated during a deep powerdown state. In other embodiments, for some LPMs, the clock signal CLK, used for internal clock signals, may be downclocked and/or gated to reduce performance and/or suspend activity in the memory controller 205.
[0065] In some embodiments, the sliding window may be configured as a shift register in hardware and/or software, as set forth below with respect to Fig. 3. Thus, Fig. 3 is a schematic diagram of LPM control logic 300 for implementing dynamic power management for statistical control, in accordance with various embodiments. LPM control logic may include a shift register 305, comprising an «-number of flip- flops (305A-305N), and Z-test logic 310. It should be noted that the various components of the LPM control logic 300 are schematically illustrated in Fig. 3, and that modifications to LPM control logic 300 may be possible in accordance with the various embodiments.
[0066] In various embodiments, the outputs of the shift register 305 may be provided to the Z-test logic 310 in with every clock tick. The clock signal, in this example, is set to a frequency of l/ta for a given LPM. As in the previous example, the «-number of flip-flops may correspond to the number of samples stored in the sliding window (e.g., a sliding window of « samples). Thus, in various embodiments, a shift register with a length of «-samples may be initialized by the LPM control logic 300. In some embodiments, the « number of samples may be preset for all LPMs, or by individual LPM. In other embodiments, the « number of samples may be set dynamically on one or more LPMs. In one example, « may be preset to 50.
[0067] As previously described, the shift register 305 and Z-test logic 310 may be implemented as hardware and/or software logic. In some embodiments, the shift register 305 may therefore be initialized as a shift register of « length, as either a hardware shift register and/or initialized in software. Similarly, Z-test logic 310 may be implemented in hardware as a digital circuit and/or a software algorithm. In some embodiments, the shift register 305 and Z-test logic 310 may both be implemented in hardware implementations, both as software implementations, or as a combination of software and hardware implementations.
[0068] In various embodiments, data written to the first flip-flop 305A may be a current state of the memory system (e.g., one or more of the data lines, C/A lines, control lines to the memory device or on the DFI bus). In some embodiments, if the memory system is idle, a value of 1 may be written to the flip flop (and previously stored values shifted to the next flip-flops 305B-305N). Thus, the Z-test logic 310 may be configured to determine a total number of samples, n, as well as the total number of idle time slots in the sliding window. The outputs of the flip-flops 305A- 305N may be output in parallel to the Z-test logic 310. Z-test logic may then determine, as a sum of all the bits Ql-Qn, the total number of "good" time slots (e.g., idle time slots). Based on this sum, and the total number of samples, n, the Z-test logic 310 may determine p for the given LPM. Based on these values, the Z-test logic 310 may further determine a Z-score for the most recent window of 50 samples, as described above with respect to Fig. 1. Accordingly, the Z-test logic 310 may further be configured to obtain an aggregated system latency requirement for all clients of the DDR subsystem and/or memory device, latency and power characteristics of the respective LPM, and a threshold confidence level to determine a threshold Z-score. If the Z-score meets or exceeds the threshold Z-score, the Z-test logic 310 may set the DDR subsystem and/or the memory device to the corresponding LPM.
[0069] Fig. 4 is a schematic diagram 400 of a DDR PHY 405 for dynamic power management using statistical control, in accordance with various embodiments. The DDR PHY 405 may include a clock/power management block 410, command/address control 420, and data control 430. The clock/power management block 410 may include one or more PLL 415. The command/address control 420 may include one or more DLL 425, and data control 430 may include one or more DLL 435. The DDR PHY 405 may further include I/O pads 440. It should be noted that the various components of the DDR PHY 405 are schematically illustrated in Fig. 4, and that modifications to the DDR PHY 405 may be possible in accordance with the various embodiments.
[0070] In various embodiments, the clock / power management 410 block may be configured to receive and process the clock signal CK, CKE, and further to receive signals on the LPI to handle power management for the DDR PHY 405. The clock/power management block 410 may include logic implemented in hardware and/or software, as described above. Similarly, the command/address control block 420 may be configured to receive command/address signals from the command/address lines of the DFI bus. The command/address control block 420 may be configured to receive command/address signals from the memory controller, and to further process the signals to be received by the memory device. The command/address control 420 may include logic implemented in hardware and/or software, such as command buffers, tuning circuits, and the like. Similarly, the data control block 430 may include logic implemented in hardware and/or software, and include data to be written to / read from the memory device, data buffers, and other data processing logic (e.g., read/write leveling, etc.). Signals to be output to the memory device may be sent via the I/O Pads 440.
[0071] According to various embodiments, based on a determination by the memory controller and/or LPM control logic to enter an LPM, the DDR PHY 405 may receive a command and/or control signal to do so via the LPI. The LPI may thus be read, by the clock / power management block 410, to enter the specified LPM. As previously described, LPM for the DDR PHY may include entering one or more low- power states, in which all or part of the components are selectively power gated and/or clock gated. For example, in some embodiments, each of the PLL 415, DLL 425, and/or DLL 435 may be power gated during a deep powerdown state. In other embodiments, in some LPMs, the clock signal CLK, used for internal clock signals, may be downclocked and/or gated to reduce performance and/or suspend activity in the DDR PHY. In some LPMs, the I/O pads 440 may further be power gated or otherwise have a power source removed.
[0072] Fig. 5 is a flow diagram of a method 500 of dynamic power management of a DDR subsystem using statistical control, in accordance with various embodiments. The method 500 begins, at block 505, by determining an aggregated system latency requirement. As previously described, the memory controller may be configured to determine an aggregated system latency requirement based on each of the clients of the memory device. In some examples, the aggregated system latency requirement may be a voted be an aggregated voted latency requirement.
[0073] At block 510, the method 500 continues by determining power and latency characteristics for one or more LPMs. In some embodiments, the power and latency characteristics of one or more LPMs may be obtained by the memory controller and/or LPM control logic from, for example, from on-board data storage or from an external database. Thus, in various embodiments, power and latency characteristics for LPMs may be preprogrammed into the memory system (e.g., DDR subsystem or in LPM control logic), based on published manufacturer data. As an example, a power characteristic may include a determination of power usage in the LPM and the idle active power. Latency characteristics of the LPM may include total latency that includes entering latency and wake-up latency, la. or the amount of time it takes to initialize / wake from the LPM. As previously described, LPMs may include LPMs for the DDR subsystem and/or memory device.
[0074] The method continues, at decision block 515, by determining whether the LPM latency characteristic (e.g., the wakeup latency) is shorter than the aggregated system latency requirement. If it is determined that, for a given LPM, the total latency exceeds the aggregated system latency requirement, the LPM may be removed from consideration, and the method 500 may include determining the power and latency characteristics for a subsequent low-power mode, at block 510. Then the determination of whether the LPM satisfies the aggregated system latency requirement is repeated, at decision block 515. Thus one or more LPMs may be identified that have a total latency that is shorter than or meets the aggregated system latency requirement. In some embodiments, this determination may be made in a serial fashion for one or more LPMs, as described. In other embodiments, the determination may be made concurrently for the one or more LPMs.
[0075] If it is determined that the total latency meets or is less than the aggregated system latency requirement, the method 500 may continue, at block 520, by determining a minimum probability of a good time slot needed for power savings: po. As previously described, po may be determined based on the power characteristics of a given LPM. In some embodiments, the po may be calculated for a single LPM, while in other embodiments, po for multiple LPMs may be determined concurrently.
[0076] The method 500 continues, at block 525, by calculating the Z-score for a given po of the LPM. In various embodiments, a Z-test may be completed for one or more of the LPMs. For example, an n number of samples may be collected over an n number of time slots. The length of the time slot ts may be set equal to the total latency that includes the entering latency and wakeup latency ta for the respective LPM for which the Z-score is calculated. Based on the number of good time slots (e.g., idle time slots), p may be calculated.
[0077] At decision block 530, the method 500 continues by determining whether the Z-score for the LPM is greater than the threshold Z-score. As previously described, the threshold Z-score may be determined by the threshold confidence level. In one example, a threshold confidence level of 95% may correspond to a threshold Z-score of 1.65. If the Z-score for the LPM is greater than or equal to the threshold Z- score, then the method 500 may continue, at block 535, by setting the LPM. Setting the LPM may include, for example, sending a command and/or control signal to cause the memory system or a component of the memory system, such as the DDR subsystem and/or a memory device, or a combination of subcomponents of the DDR subsystem and/or memory device, to enter the LPM. If the Z-score does not meet the threshold Z-score, the system may be allowed to remain in an active idle state. The method 500 may continue, at decision block 540, by further checking to see if there are additional LPM to check and determine a Z-score. Thus, if there is another LPM that has not yet been checked, the method 500 may repeat, at block 510, the determination of the power and latency characteristics of the remaining LPMs.
[0078] The process of performing a Z-test is described in greater detail below.
Fig. 6 is a flow diagram of a method 600 of a statistical test for dynamic power management of the DDR subsystem, in accordance with various embodiments. The method 600 begins, at block 605, by determining the number of samples n to be collected. As previously described, in some embodiments, the number of samples n may be determined based, at least in part, on the threshold confidence level desired for the Z-test.
[0079] The method 600 continues, at block 610, by initializing a shift register of n length. As previously described, the shift register may be implemented in hardware or software. Thus, initializing the shift register may include initializing a hardware register to be filled with samples corresponding to a state of one or more lines of the DFI bus, and/or one or more lines of the C/A bus, control bus, and/or data bus to the memory device. In a software register implementation, the memory controller may be configured to instantiate a shift register of n length, or alternatively, a rolling counter of the most recent fifty samples of the idle state of the system, DDR subsystem, and/or memory device.
[0080] The method 600 may continue, at block 615, by determining the duration of the sampling time (e.g., length of a time slot is) for a given LPM. In some examples, the length of the time slot may be set to the total latency of the respective LPM. At block 620, a sample is taken every ts, or at a sample rate of 1 Its. As described above, one or more lines of the DFI bus, or one or more lines of the several buses to the memory device may be sampled to determine if the one or more lines are idle. Alternatively, the memory controller may be queried to determine the status of the one or more lines.
[0081] The status of the line may then be written, at block 625, as a new value to the shift register. In some embodiments, the status is not updated during the state.
In some examples, an idle state may correspond to logical high, while a low value may be set to logical low. In some embodiments, new data values may continue to be written to the shift register until the shift register is filled before a Z-score is calculated. Once the shift register has been filled, a new value may be added at each clock cycle (e.g., every Is). with the oldest value being overwritten and pushed out of the shift register. In this way, the shift register acts as a sliding window of the most recent n samples.
[0082] The method 600 may, at block 630, include determining a sum of each bit of the shift register. In this way, a total number of "good" time slots (e.g., idle time slots) may be determined or the most recent n samples. The sum, in some examples, may be continually updated with each new value written to the shift register.
[0083] Based on the sum, at block 635, the Z-score may be determined for the
LPM. For example, in some embodiments, based on the sum of the total number of good time slots, and knowing the number of samples, n, the probability that a given time slot will be "good" may be determined (e.g., p is determined). From p, and knowing the value po, a Z-score may be determined for the LPM. As described above, the Z-test may be repeated for each LPM satisfying the aggregated system latency requirement.
[0084] The terms "machine readable medium" and "computer readable medium," as used herein, refer to any medium that participates in providing data that causes a machine to operate in some fashion. In an embodiment implemented using the computer or hardware system 500, various computer readable media may be involved in providing instructions/code to processor(s) 510 for execution and/or may be used to store and/or carry such instructions/code (e.g., as signals). In many implementations, a computer readable medium is a non-transitory, physical, and/or tangible storage medium. In some embodiments, a computer readable medium may take many forms, including, but not limited to, non-volatile media, volatile media, or the like. Non-volatile media includes, for example, optical and/or magnetic disks, such as the storage device(s) 525. Volatile media includes, without limitation, dynamic memory, such as the working memory 535. In some alternative embodiments, a computer readable medium may take the form of transmission media, which includes, without limitation, coaxial cables, copper wire, and fiber optics, including the wires that comprise the bus 505, as well as the various components of the communication subsystem 530 (and/or the media by which the communications subsystem 530 provides communication with other devices). In an alternative set of embodiments, transmission media can also take the form of waves (including without limitation radio, acoustic, and/or light waves, such as those generated during radio wave and infra-red data communications).
[0085] While some features and aspects have been described with respect to some embodiments, one skilled in the art will recognize that numerous modifications are possible. For example, the methods and processes described herein may be implemented using hardware components, software components, and/or any combination thereof. Further, while various methods and processes described herein may be described with respect to particular structural and/or functional components for ease of description, methods provided by various embodiments are not limited to any particular structural and/or functional architecture but instead can be implemented on any suitable hardware, firmware and/or software configuration. Similarly, while some functionality is ascribed to some system components, unless the context dictates otherwise, this functionality can be distributed among various other system components in accordance with the several embodiments.
[0086] Moreover, while the procedures of the methods and processes described herein are described in a particular order for ease of description, unless the context dictates otherwise, various procedures may be reordered, added, and/or omitted in accordance with various embodiments. Moreover, the procedures described with respect to one method or process may be incorporated within other described methods or processes; likewise, system components described according to a particular structural architecture and/or with respect to one system may be organized in alternative structural architectures and/or incorporated within other described systems. Hence, while various embodiments are described with — or without — some features for ease of description and to illustrate some aspects of those embodiments, the various components and/or features described herein with respect to a particular embodiment can be substituted, added and/or subtracted from among other described embodiments, unless the context dictates otherwise. Consequently, although several embodiments are described above, it will be appreciated that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims

WHAT IS CLAIMED IS:
1. A method, comprising: obtaining, via a memory controller, an aggregated system latency requirement for a memory system comprising the memory controller; determining, via the memory controller, a power characteristic and a latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and an idle active power consumption, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode; determining, via the memory controller, whether the total latency of the low- power mode is less than or equal to the aggregated system latency requirement; in response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement: determining, via the memory controller, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode; performing, via the memory controller, a statistical test of the low- power mode for a statistical hypothesis that p > po, wherein p is associated with a probability that the time slot is idle; and based on a result of the statistical test, causing, via the memory controller, the memory system to enter the low-power mode.
2. The method of claim 1, further comprising: in response to determining that the total latency of the low-power mode greater than the aggregated system latency requirement, determining whether the total latency of a subsequent low-power mode is less than or equal to the aggregated system latency requirement.
3. The method of claim 1, wherein the statistical test is a Z-test, and wherein performing the statistical test comprises: determining a Z-score for the low-power mode based on p and pO; and determining, based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level.
4. The method of claim 3, wherein the result of the statistical test is an indication whether the Z-score is greater than or equal to the threshold Z-score, and wherein based on a result of the statistical test, causing the memory system to enter the low-power mode comprises: in response to determining that the Z-score is greater than or equal to the threshold Z-score, causing the memory system to enter the low-power mode.
5. The method of claim 3, wherein determining the Z-score comprises: determining, based on the threshold confidence level, a total number of samples n to be collected; initializing a shift register of length n obtaining a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low-power mode, wherein the sample is an indication of whether one or more lines of the memory system are idle; writing a value of the sample to the shift register during time period ts when the memory system is capable of logging, the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period ts and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed; and determining a total number of samples in which the one or more lines of the memory system are idle of the most recent n samples.
6. The method of claim 5, wherein obtaining the sample comprises: monitoring one or more lines of a double data rate PHY interface bus for activity; and determining an activity state of the one or more lines of the double data rate PHY interface bus, wherein the activity state is indicative of whether the one or more lines are idle.
7. The method of claim 1, wherein causing, via the memory controller, the memory system to enter the low-power mode comprises causing, via the memory controller, at least one of a double data rate physical interface or the memory controller to enter the low-power mode.
8. An apparatus, comprising: a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to: obtain an aggregated system latency requirement for a memory system; determine a power characteristic and latency characteristic for a low- power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode; determine whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement; in response to determining that the total latency of the low-power mode is less than or equal to aggregated system latency requirement: determine, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode; perform a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p is associated with a probability of a time slot being idle; and based on a result of the statistical test, cause the memory system to enter the low-power mode.
9. The apparatus of claim 8, wherein the set of instructions is further executable by the processor to: determine in response to an indication that the total latency of the low-power mode greater than the aggregated system latency requirement, whether the total latency of a subsequent low-power mode is less than or equal to the aggregated system latency requirement.
10. The apparatus of claim 8, wherein performing the statistical test further comprises performing a Z-test, wherein the set of instructions is further executable by the processor to: determine a Z-score for the low-power mode based on p and pO; determine, based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level; and wherein the result of the statistical test is an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z-score is greater than or equal to the threshold Z- score, the low-power mode is entered.
11. The apparatus of claim 10, wherein the set of instructions is further executable by the processor to: determine, based on the threshold confidence level, a total number of samples n to be collected; initialize a shift register of length n obtain a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low-power mode, wherein the sample is an indication of whether one or more lines of a memory system is idle; write a value of the sample to the shift register every time period Is. the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period ts and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed; and determine a total number of samples in which the one or more lines of the memory system are idle of the most recent n samples, wherein p is associated with a probability of a time slot being idle.
12. The apparatus of claim 11, the set of instructions is further executable by the processor to: monitor one or more lines of a double data rate PHY interface bus for activity; and determine an activity state of the one or more lines of the double data rate PHY interface bus, wherein the activity state is indicative of whether the one or more lines are idle.
13. A memory subsystem, comprising: a double data rate physical interface (DDR PHY) in communication with a memory device; a memory controller coupled to the DDR PHY, the memory controller comprising: a processor; and a non-transitory computer readable medium in communication with the processor, the non-transitory computer readable medium having encoded thereon a set of instructions executable by the processor to: obtain, via the memory controller, an aggregated system latency requirement for a memory system, wherein the aggregated system latency requirement is a minimum latency required by all clients of the memory system; determine, via the memory controller, a power characteristic and latency characteristic for a low-power mode of the memory system, wherein the power characteristic includes a power consumption in the low-power mode and power required to come out of the low-power mode, and wherein the latency characteristic includes a total latency to enter and exit the low-power mode; determine, via the memory controller, whether the total latency of the low-power mode is less than or equal to the aggregated system latency requirement; in response to determining that the total latency of the low- power mode is less than or equal to aggregated system latency requirement: determine, via the memory controller, based on the power characteristic, po, wherein po is a minimum probability that a time slot is idle to ensure power saving by entering the low-power mode; perform, via the memory controller, a statistical test of the low-power mode for a statistical hypothesis that p > po, wherein p is associated with a probability of a time slot being idle; and based on a result of the statistical test, cause, via the memory controller, the memory system to enter the low-power mode.
14. The memory subsystem of claim 13, wherein the set of instructions is further executable by the processor to: determine, via the memory controller, in response to an indication that the total latency of the low-power mode greater than the aggregated system latency requirement, whether the total latency of a subsequent low-power mode is less than or equal to the aggregated system latency requirement.
15. The memory subsystem of claim 13, wherein performing the statistical test further comprises performing a Z-test, wherein the set of instructions is further executable by the processor to: determine, via the memory controller, a Z-score for the low-power mode based on p and pO; determine, via the memory controller and based on a threshold confidence level, a threshold Z-score to meet the threshold confidence level; and wherein the result of the statistical test is an indication whether the Z-score is greater than or equal to the threshold Z-score, wherein in response to determining that the Z-score is greater than or equal to the threshold Z- score, the low-power mode is entered.
16. The memory subsystem of claim 15, wherein the set of instructions is further executable by the processor to: determine, via the memory controller and based on the threshold confidence level, a total number of samples n to be collected; initialize, via the memory controller, a shift register of length n obtain, via the DDR PHY, a sample at a sampling rate of 1 Its, wherein ts is a time period set to the total latency of the low-power mode, wherein the sample is an indication of whether one or more lines of a memory system is idle; write, via the memory controller, a value of the sample to the shift register every time period ts, the value indicating whether the one or more lines of the memory system are idle at a current time, wherein the value is updated every time period ts and written to the shift register until the shift register is full, wherein values in the shift register are shifted such that an oldest value in the shift register is overwritten each time the time period ts has elapsed; and determine, via the memory controller, a total number of samples in which the one or more lines of the memory system are idle of the most recent n samples, wherein p is associated with a probability of a time slot being idle.
17. The memory subsystem of claim 15, wherein the threshold confidence level is 95%.
18. The memory subsystem of claim 15, wherein the total number of samples n is at least 50.
19. The memory subsystem of claim 13, wherein the set of instructions is further executable by the processor to: monitor, via the memory controller, one or more lines of a DDR PHY interface (DFI) bus for activity; and determine, via the memory controller, an activity state of the one or more lines of the DFI bus, wherein the activity state is indicative of whether the one or more lines of the DFI bus are idle.
20. The memory subsystem of claim 13, wherein causing, via the memory controller, the memory system to enter the low-power mode further comprises causing, via the memory controller, at least one of the DDR PHY or the memory controller to enter the low-power mode.
PCT/US2021/033679 2021-05-21 2021-05-21 Dynamic power management of ddr subsystem using statistical control WO2022245371A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202180098371.6A CN117337419A (en) 2021-05-21 2021-05-21 DDR subsystem dynamic power management using statistical control
PCT/US2021/033679 WO2022245371A1 (en) 2021-05-21 2021-05-21 Dynamic power management of ddr subsystem using statistical control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/033679 WO2022245371A1 (en) 2021-05-21 2021-05-21 Dynamic power management of ddr subsystem using statistical control

Publications (1)

Publication Number Publication Date
WO2022245371A1 true WO2022245371A1 (en) 2022-11-24

Family

ID=84141670

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2021/033679 WO2022245371A1 (en) 2021-05-21 2021-05-21 Dynamic power management of ddr subsystem using statistical control

Country Status (2)

Country Link
CN (1) CN117337419A (en)
WO (1) WO2022245371A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070055476A1 (en) * 2005-08-02 2007-03-08 Whisnant Keith A Optimizing bandwidth and power in wireless networks of smart sensors
US20110296214A1 (en) * 2010-05-25 2011-12-01 Arntzen Eskild T Power savings and/or dynamic power management in a memory
US20140208144A1 (en) * 2002-06-05 2014-07-24 Broadcom Corporation Method and Apparatus for Adaptive Power Management of Memory Subsystem
US20140247764A1 (en) * 2012-06-06 2014-09-04 Unify Gmbh & Co. Kg Method of Operating a Communication Device Operable in an Active Mode and in an Idle Mode, a Computer Program Product for Executing the Method, and the Communication Device Operable in an Active Mode and in an Idle Mode
US9323657B1 (en) * 2014-12-30 2016-04-26 Sandisk Technologies Inc. Memory system and method for improving read latency of a high-priority partition

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140208144A1 (en) * 2002-06-05 2014-07-24 Broadcom Corporation Method and Apparatus for Adaptive Power Management of Memory Subsystem
US20070055476A1 (en) * 2005-08-02 2007-03-08 Whisnant Keith A Optimizing bandwidth and power in wireless networks of smart sensors
US20110296214A1 (en) * 2010-05-25 2011-12-01 Arntzen Eskild T Power savings and/or dynamic power management in a memory
US20140247764A1 (en) * 2012-06-06 2014-09-04 Unify Gmbh & Co. Kg Method of Operating a Communication Device Operable in an Active Mode and in an Idle Mode, a Computer Program Product for Executing the Method, and the Communication Device Operable in an Active Mode and in an Idle Mode
US9323657B1 (en) * 2014-12-30 2016-04-26 Sandisk Technologies Inc. Memory system and method for improving read latency of a high-priority partition

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MEISNER ET AL.: "Powernap: eliminating server idle power", ACM SIGARCH COMPUTER ARCHITECTURE NEWS, vol. 37, no. 1, 11 March 2009 (2009-03-11), pages 205 - 216, XP058094622, Retrieved from the Internet <URL:https://dl.acm.org/doi/abs/10.1145/2528521.1508269> [retrieved on 20210729] *

Also Published As

Publication number Publication date
CN117337419A (en) 2024-01-02

Similar Documents

Publication Publication Date Title
US11086388B2 (en) Memory controller and operating method thereof
US8275560B2 (en) Power measurement techniques of a system-on-chip (SOC)
Malladi et al. Rethinking DRAM power modes for energy proportionality
US7496777B2 (en) Power throttling in a memory system
US6618791B1 (en) System and method for controlling power states of a memory device via detection of a chip select signal
US9074947B2 (en) Estimating temperature of a processor core in a low power state without thermal sensor information
US9104421B2 (en) Training, power-gating, and dynamic frequency changing of a memory controller
US9110669B2 (en) Power management of a storage device including multiple processing cores
TWI522774B (en) System power management using communication bus protocols
US10223017B2 (en) Memory apparatus and energy-saving control method thereof
KR20080081042A (en) System and method for providing temperature data from a memory device having a temperature sensor
EP3440531B1 (en) Enhanced dynamic clock and voltage scaling (dcvs) scheme
TWI581092B (en) Memory apparatus and energy-saving controlling method thereof
US7958380B2 (en) Coarsely controlling memory power states
US9377833B2 (en) Electronic device and power management method
US10572183B2 (en) Power efficient retraining of memory accesses
US20190346908A1 (en) Voltage rail coupling sequencing based on upstream voltage rail coupling status
US10613612B2 (en) Power reduction via memory efficiency compensation
WO2022245371A1 (en) Dynamic power management of ddr subsystem using statistical control
JP2022511629A (en) Speculative termination of power-down mode of dynamic random access memory rank
CN1937075B (en) Data transfer operation completion detection circuit and semiconductor memory device provided therewith
CN112540665B (en) Memory frequency switching device and method
US11223351B1 (en) Activity-aware clock gating for switches
US20230213997A1 (en) Power management for storage controllers

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: 21941003

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE