US20010011356A1 - Dynamic memory clock control system and method - Google Patents

Dynamic memory clock control system and method Download PDF

Info

Publication number
US20010011356A1
US20010011356A1 US09/130,746 US13074698A US2001011356A1 US 20010011356 A1 US20010011356 A1 US 20010011356A1 US 13074698 A US13074698 A US 13074698A US 2001011356 A1 US2001011356 A1 US 2001011356A1
Authority
US
United States
Prior art keywords
memory
clock
memory access
access
memory clock
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
US09/130,746
Other versions
US6460125B2 (en
Inventor
Keith Sk Lee
David Sinclair
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ATI Technologies ULC
Original Assignee
ATI Technologies ULC
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 ATI Technologies ULC filed Critical ATI Technologies ULC
Priority to US09/130,746 priority Critical patent/US6460125B2/en
Assigned to ATI TECHNOLOGIES reassignment ATI TECHNOLOGIES ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: SINCLAIR, DAVID, LEE, KEITH SK
Publication of US20010011356A1 publication Critical patent/US20010011356A1/en
Application granted granted Critical
Publication of US6460125B2 publication Critical patent/US6460125B2/en
Assigned to ATI TECHNOLOGIES ULC reassignment ATI TECHNOLOGIES ULC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: ATI TECHNOLOGIES INC.
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • 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

Definitions

  • the invention relates generally to circuits and methods for reducing power consumption for electronic circuits, and more particularly to circuits and methods that control a memory clock and/or memory controller to reduce power consumption.
  • Portable electronic devices such as notebook computers, personal organizers, portable telecommunication equipment and other electronic devices consume much power during their display mode.
  • graphics control chips for laptop computers may be integrated circuits having dynamic ram (DRAM) on the same die as the memory controller and other video and graphics processors. As shown in FIG.
  • DRAM dynamic ram
  • a conventional type of graphics control chip 100 may include a number of memory access request circuits (or access request engines) such as a video capture engine 102 , a two dimensional and three dimensional drawing engine 104 , a display engine 106 , a video playback engine 108 , a host processor 109 , onboard DRAM 110 serving as the memory, a memory controller 112 and a phase lock loop circuit (PLL) 114 for generating a memory clock.
  • memory access request circuits or access request engines
  • PLL phase lock loop circuit
  • Graphics control chips typically also include another phase lock loop circuit 118 for generating a clock for a display device (or devices) such as a CRT 120 a that may plug into the laptop computer or an LCD display 120 b that is mounted to the laptop computer.
  • a central processing unit (CPU) of the computer 122 interfaces with the graphics chip and other peripheral devices as known in the art.
  • a laptop computer or a portable device may include a TV tuner 124 , as part of a multimedia package, that sends video information 126 to the video capture engine 102 for eventual display on LCD display 120 b after being stored in the memory 110 .
  • the many graphic engines 102 - 108 attempt to access the memory 110 to perform their necessary operations. However only one of the graphic engines can access the memory 110 at a given time. Some of the display operations require real-time processing, such as video capture operation, display operation and video playback, so that real-time display can occur on the LCD display 120 b.
  • the video should be processed in real-time to facilitate display in real-time which is necessary, for example, for live performances or when the TV tuner is providing live feed.
  • this engine has a higher priority over, for example, a 2D or 3D drawing engine 104 which may be slightly delayed and still provide the user with high performance on display times.
  • the memory clock frequency is set at the highest possible frequency to ensure suitable graphic controller performance.
  • this results in a higher power dissipation which can degrade the overall system performance of a portable electronic device and fail to conserve battery power.
  • the memory clock is set to a lower speed, the real-time operations may not process information fast enough and suffer unnecessarily at the expense of reduced power consumption.
  • the power dissipation of a graphics control chip and other integrated circuits is typically related to the frequency of the memory clock.
  • Systems such as those shown in FIG. I typically have a fixed memory clock 128 which can be manually changed by the user through a graphical user interface but is typically factory set upon initialization and often does not change.
  • FIG. 1 is a block diagram of a prior art graphics control chip.
  • FIG. 2 is a block diagram of an embodiment of a graphics control chip employing an adaptive memory clock control system in accordance with one embodiment of the invention.
  • FIG. 3 is a block diagram depicting one example of a memory access request data detector and a variable memory clock generator in accordance with one embodiment of the invention.
  • FIG. 4 is a flowchart illustrating one example of the operation of a memory access request data detector in accordance with one embodiment of the invention.
  • FIG. 5 is a flowchart generally depicting one method for varying a memory clock in response to determining the desired memory usage in accordance with one embodiment of the invention.
  • FIG. 6 is a block diagram illustrating another embodiment of an adaptive memory clock control system in accordance with the invention.
  • FIG. 7 is a flow chart illustrating an example of the operation of an adaptive memory clock control system as shown in FIG. 6.
  • a memory clock control system and method facilitates power reduction on a dynamic basis by detecting memory access request loading from a number of memory access devices, such as video and graphics engines. Based on the detected memory access requirements, the system and method adaptively varies a memory clock frequency in response to determining the desired memory usage at a given point in time.
  • the memory clock is varied based on the priority of a given memory access engine, such that the clock is kept or increased to a higher rate for high priority engines such as real-time processing engines to facilitate high performance video capture.
  • the system evaluates the memory access demand and reduces the memory clock to reduce power consumption and power dissipation. In one embodiment, a duration of non-access for a given memory access engine is used to determine whether the memory clock frequency should be varied.
  • FIG. 2 shows a memory clock control system 200 incorporated on a graphics controller chip 202 containing both memory 110 (DRAM) and memory access request circuits such as video and graphics engines.
  • the memory 110 and the memory controller 112 are on a common chip or die. However, it will be recognized that any of the memory access request engines or circuits may be on separate dies discrete circuits if desired.
  • the memory clock control system 200 includes a memory access request detector 204 for detecting memory access request data 206 a - 206 e.
  • the memory access request data 206 a - 206 e (REQ 0 through REQ 4 ) are request signals (memory access traffic channels) generated by the various graphic memory access engines 102 - 108 as shown.
  • the memory access request data 206 a - 206 e serves as a request to the memory controller 112 requesting access (i.e., data) to the memory 110 .
  • the memory access request detector 204 may be any suitable digital logic such as a programmed digital signal processor or other suitable circuitry, software or any suitable combination thereof.
  • the memory access request detector 204 detects the memory access request data 206 a - 206 e for a plurality of memory access channels to determine the desired memory access at any given time.
  • the memory clock control system 200 also includes a variable memory clock generator 208 that receives a variable memory clock control signal 210 to adaptively vary the memory clock signal 212 in response to determining the desired memory usage from the memory access channels represented by the request data 206 a - 206 e.
  • the variable memory clock generator 208 includes a programmable phase lock loop (PLL) or any other suitable variable clock generator. For example, multiple clock sources can be selected through a multiplexing circuit or a fixed clock can be divided down or multiplied accordingly.
  • PLL programmable phase lock loop
  • the memory access request detector 204 detects an increase or reduction in memory access usage by analyzing the request data 206 a - 206 e. For example, the memory access request detector analyzes the request data to see which engine is accessing memory, and for how long.
  • the 2D/3D drawing engine is typically given lower priority such that if the display engine requires data for a display frame, and the memory clock is set a slower speed, the memory clock control system 200 increases the memory clock for the display engine. If for example, the detector detects that only the 2D/3D engine is requesting memory access, the clock speed is reduced if it was previously set at a high speed. Also, if for example, only the display engine is active but requires a bandwidth of data that allows a lower clock speed, the clock will be decreased.
  • the variable memory clock generator 208 generates the variable memory clock signal 212 for the memory controller 112 and the memory 110 . Also, the variable clock generator 208 may generate other clocks if desired.
  • the memory clock control system 200 reduces the power consumption of the memory controller 112 and the DRAM or memory 110 by reducing the memory clock frequency when appropriate, and also improves performance by automatically adapting to memory access demands by increasing the memory clock during the periods when high bandwidth demands are required from the memory and memory controller, such as during memory access requests from real time processing engines.
  • the memory clock MCLK signal 212 is dynamically varied based on graphic and image engine usage.
  • the memory clock control system 200 detects which graphic or image engine is operational and varies the memory clock in response to the duration of non-access of memory to decrease power during non-access conditions.
  • the memory clock control system is a type of activity based detector. If desired, the system may include a graphic user interface to allow a user to select priority of the engines.
  • FIG. 3 shows the memory access request detector 204 including counters 300 a - 300 n for determining a duration of non-access of memory by detecting non-access on a per access channel basis.
  • the mechanism for determining a duration of non-access of memory may be a counter, as shown, or any other suitable duration detection mechanism.
  • Each counter 300 a - 300 n receives the request data 206 a - 206 n and increments when no request is detected.
  • the clock may detect a request on each clock cycle, each frame or other suitable time.
  • the count indicates whether the particular memory access traffic channel (and hence the associated memory access request engine) has been dormant for a long enough period of time to warrant a reduction in MCLK frequency to reduce power consumption.
  • a counter can be decremented when a request is present or any suitable mechanism may be used to detect a non-access condition.
  • the time out period for each counter may be preprogrammed by a display driver to an optimal setting based on such factors as type of engine requesting memory access, display refresh rates and display resolution settings or other suitable criteria.
  • Each of the non-access duration detectors 300 a - 300 n outputs duration data 302 a - 302 n for each traffic channel to a priority based controller 304 .
  • the priority based controller 304 may be any suitable processing device, such as a microprocessor or other suitable logic.
  • the priority based controller 304 serves to prioritize among the received memory request data 206 a - 206 n to selectively control the memory clock speed based on the priority of a given request channel.
  • the priority based controller 304 adjusts the variable memory clock control signal 210 to a value to reduce power consumption in response to a detection of reduced memory access usage, or increases the memory clock speed in response to a detection of increased memory access usage to enhance graphics controller performance when usage requires.
  • the variable memory clock generator 208 includes memory 306 containing predetermined clock rate control data for controlling the variable memory clock 308 .
  • the memory 306 may include a lookup table (LUT) containing clock rate control values indexed by the value of the variable memory clock control signal.
  • the predetermined clock rate control data 310 serves as the input to the variable memory clock 308 .
  • the variable memory clock 308 may be a phase lock loop circuit or any other suitable variable clock generation circuit, or a fixed PLL clock with multiple clock dividers which are selected using a controlled clock multiplexer.
  • the memory clock is varied at a time when display corruption does not occur. This may be for example during vertical blanking periods or other suitable time.
  • FIG. 4 shows an example of a method of operation for the priority based controller 304 which starts in block 400 by the priority based controller initializing the counter 308 a - 300 n.
  • the priority based controller 304 determines from the counter signals 302 a - 302 n whether any traffic channel is active as shown in block 402 . If no traffic channels are active, the priority based controller outputs a variable memory clock control signal 210 to select a slowest memory clock frequency as shown in block 404 . If desired, the priority based controller 304 may generate a variable memory clock control signal 210 which shuts down the memory clock completely, if desired.
  • All of the traffic channels are evaluated at a given point in time to determine whether an adjustment to the memory clock is necessary. If for example, a traffic channel is detected to be active (e.g., requesting access to the memory) for a predetermined duration as indicated by the signals 302 a - 302 n, the priority based controller 304 determines the current memory clock speed as shown in block 406 by looking at a copy of the lookup table 306 to determine the corresponding memory clock frequency corresponding to the last variable memory clock control signal 210 that was generated. As shown in block 408 , the priority based controller 304 determines whether the highest priority channel is active.
  • the display engine receives the highest priority hence REQ 0 as assigned to the display engine 106 .
  • the priority based controller 304 is preprogrammed to assign the traffic channel associated with REQ 0 as the highest priority request whereafter REQ 1 is second priority and so on.
  • the priority based controller 304 If the highest priority traffic channel is not active, the priority based controller 304 generates a variable memory clock control signal 210 to decrease the memory clock 212 as shown in block 410 to reduce power consumption by the memory controller and memory if the memory clock is not already reduced to the desired amount. It may decrease the memory clock to the next predetermined frequency as set in the look up table or may if desired, reduce it more than one step depending upon its determination of which priority channel is active. If the highest priority channel is active and the current setting for the MCLK signal 212 is not at the highest frequency, the priority based controller 304 will increase the memory clock by generating a suitable variable memory clock control signal 210 so that performance is enhanced to suitably accommodate memory accesses by the highest priority engine. This is shown in block 412 . Hence the system increases the memory clock speed in response to a detection of an increase in memory access usage.
  • the priority based controller 304 then continues to check whether the next lowest priority traffic channel is active as shown in block 414 . If it is not, the priority based controller 304 will generate a variable memory clock control signal 210 to decrease the memory clock as shown in block 416 . Since only one engine can access the memory at any given point, the priority based controller 304 will decrease the memory clock since it had previously either detected a higher priority access or sufficient non access by the high priority engine indicating that the memory clock is operating at a speed unnecessarily high. If the next highest priority traffic channel is active, the priority based controller 304 will increase the memory clock as shown in block 418 .
  • the priority based controller 304 continues the analysis to determine if the last priority traffic channel is active as shown in block 420 . If it is not active, indicating no access to the memory is occurring by any of the memory access engines, the priority based controller 304 will decrease the memory clock frequency as shown in block 422 . If the lowest priority traffic channel is active, the priority based controller 304 will increase the memory clock by a step as shown in block 424 . The process continues on an ongoing basis during the operation of the graphics controller chip.
  • FIG. 5 shows one embodiment of a method for controlling the memory clock which may include for example, increasing the memory clock frequency or decreasing the memory clock frequency as previously described with reference to FIG. 4.
  • the variable memory clock generator 208 obtains the current memory clock speed from the lookup table 306 and sets the speed bit for the variable memory clock 308 as shown in blocks 500 and 502 .
  • the variable memory clock then controls the memory clock frequency based on which speed bit is set. This is shown in block 504 .
  • Either the variable memory clock generator or the memory access request detector generates another control signal which varies the display FIFO watermark, or other suitable mechanism for controlling the display FIFO, so that the display FIFO is filled sooner so that overflows or underflows do not occur in view of the new clock speed. For example, if the clock speed is increased, the FIFO display watermark should be varied to avoid FIFO data overflows. It will be recognized that other memory clock speed related parameters must also be updated (e.g., refresh for memories).
  • FIG. 6 shows another embodiment of a dynamic memory clock control system 600 having access to registers 602 containing status data 604 received from a display driver 606 or other suitable memory access loading determinator.
  • the status data 604 represents whether a memory access engine is active and or data representing whether to vary the memory clock based on request engine activity.
  • the memory access request detector 608 evaluates only select memory access engines, such as the 2D/3D graphics engine 104 .
  • the display driver 606 determines whether other memory access engines are accessing memory and whether, if desired, the memory clock should be varied.
  • the memory access request detector 608 also receives enable data, such as vertical blanking period data, to determine a suitable time to vary the memory clock to avoid display data corruption.
  • FIG. 7 shows, by way of example, the operation of the dynamic memory clock control system 600 based on analysis of two memory access engines—the display engine and the 2D/3D graphics engine.
  • the system starts as shown in block 700 by resetting any status bits or other control bits.
  • the system determines whether the 2D/3D draw engine is active by monitoring the request data via a counter as previously described with respect FIG. 2. If the 2D/3D draw engine is active, a 2D/3D status bit is set, as shown in block 704 . The system then checks the vertical blanking enable signal to determine whether memory clock control can occur. This is shown in block 706 .
  • the system checks the registers 602 to determine whether the display engine active bit is set. If set, the display engine is performing a memory request.
  • the system checks if a priority override bit is set in the register 602 , as shown in block 710 .
  • the display driver or control logic prioritizes among the received memory request data as desired.
  • the priority bit may be set by the display driver if for example high bandwidth display modes occur. This overrides power reduction control. This can occur if the refresh rate is set at a high rate and display resolution is high, for example.
  • the priority bit is set, the system set the clock speed to a higher speed as shown in block 712 .
  • the status bits are then reset, as indicated in block 714 , and the process continues.
  • a low display bandwidth may prevent the priority bit from being set, however, the system may increase the clock speed if the 2D/3D draw engine is active to provide better rendering performance and again reduce the memory clock speed when the draw engine is inactive.
  • the system determines if the 2D/3D engine is active as shown in block 716 . If set, the system determines if the priority override bit is also set. This is shown in block 718 . As shown in block 720 , if the 2D/3D status bit is set and the priority override is not enabled, the system reduces the memory clock speed. If 2D/3D status bit is not set, indicating that neither the display engine is active nor the draw engine is active, the system determines whether a change in status has occurred since last checked, as shown in block 722 . If a change has occurred, indicating that one engine had previously been active, the memory clock speed is reduced. The process continues to evaluate the memory request demand on a continuous basis and adjust the memory clock speed to reduce energy consumption when prudent.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

A memory clock control system and method facilitates power reduction on a dynamic basis by detecting memory access request loading from a number of memory access devices, such as video and graphics engines. Based on the detected memory access requirements, the system and method adaptively varies a memory clock frequency in response to determining the desired memory usage at a given point in time. The memory clock is varied based on the priority of a given memory access engine, such that the clock is kept or increased to a higher rate for high priority engines such as real-time processing engines to facilitate high performance video capture.

Description

    BACKGROUND OF THE INVENTION
  • The invention relates generally to circuits and methods for reducing power consumption for electronic circuits, and more particularly to circuits and methods that control a memory clock and/or memory controller to reduce power consumption. [0001]
  • Portable electronic devices such as notebook computers, personal organizers, portable telecommunication equipment and other electronic devices consume much power during their display mode. By way of example, graphics control chips for laptop computers may be integrated circuits having dynamic ram (DRAM) on the same die as the memory controller and other video and graphics processors. As shown in FIG. 1 for example, a conventional type of [0002] graphics control chip 100 may include a number of memory access request circuits (or access request engines) such as a video capture engine 102, a two dimensional and three dimensional drawing engine 104, a display engine 106, a video playback engine 108, a host processor 109, onboard DRAM 110 serving as the memory, a memory controller 112 and a phase lock loop circuit (PLL) 114 for generating a memory clock. As known in the art, each engine 102-108 may have another clock, other than the memory clock, creating a clock boundary 116. Graphics control chips typically also include another phase lock loop circuit 118 for generating a clock for a display device (or devices) such as a CRT 120 a that may plug into the laptop computer or an LCD display 120 b that is mounted to the laptop computer. A central processing unit (CPU) of the computer 122 interfaces with the graphics chip and other peripheral devices as known in the art. A laptop computer or a portable device may include a TV tuner 124, as part of a multimedia package, that sends video information 126 to the video capture engine 102 for eventual display on LCD display 120 b after being stored in the memory 110.
  • With chips such as graphics controller chips, the many graphic engines [0003] 102-108 attempt to access the memory 110 to perform their necessary operations. However only one of the graphic engines can access the memory 110 at a given time. Some of the display operations require real-time processing, such as video capture operation, display operation and video playback, so that real-time display can occur on the LCD display 120 b. For example, where the TV tuner is applying video to the video capture engine 102, the video should be processed in real-time to facilitate display in real-time which is necessary, for example, for live performances or when the TV tuner is providing live feed. Hence this engine has a higher priority over, for example, a 2D or 3D drawing engine 104 which may be slightly delayed and still provide the user with high performance on display times. In conventional systems, that employ video capture engines for example, the memory clock frequency is set at the highest possible frequency to ensure suitable graphic controller performance. However, this results in a higher power dissipation which can degrade the overall system performance of a portable electronic device and fail to conserve battery power. If the memory clock is set to a lower speed, the real-time operations may not process information fast enough and suffer unnecessarily at the expense of reduced power consumption.
  • A problem arises with such devices since power consumption and thermal dissipation need to minimized for portable devices without unnecessarily sacrificing operational performance. The power dissipation of a graphics control chip and other integrated circuits is typically related to the frequency of the memory clock. Systems such as those shown in FIG. I typically have a [0004] fixed memory clock 128 which can be manually changed by the user through a graphical user interface but is typically factory set upon initialization and often does not change.
  • Consequently, there exists a need for a dynamic power reduction circuit that can reduce power consumption and power dissipation without unnecessarily degrading system performance. It would be advantageous, if such a system could detect memory access demand and automatically adjust memory clock frequency accordingly to facilitate power reduction and increase display capabilities during proper times. [0005]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a prior art graphics control chip. [0006]
  • FIG. 2 is a block diagram of an embodiment of a graphics control chip employing an adaptive memory clock control system in accordance with one embodiment of the invention. [0007]
  • FIG. 3 is a block diagram depicting one example of a memory access request data detector and a variable memory clock generator in accordance with one embodiment of the invention. [0008]
  • FIG. 4 is a flowchart illustrating one example of the operation of a memory access request data detector in accordance with one embodiment of the invention. [0009]
  • FIG. 5 is a flowchart generally depicting one method for varying a memory clock in response to determining the desired memory usage in accordance with one embodiment of the invention. [0010]
  • FIG. 6 is a block diagram illustrating another embodiment of an adaptive memory clock control system in accordance with the invention. [0011]
  • FIG. 7 is a flow chart illustrating an example of the operation of an adaptive memory clock control system as shown in FIG. 6. [0012]
  • DETAILED DESCRIPTION OF THE INVENTION
  • A memory clock control system and method facilitates power reduction on a dynamic basis by detecting memory access request loading from a number of memory access devices, such as video and graphics engines. Based on the detected memory access requirements, the system and method adaptively varies a memory clock frequency in response to determining the desired memory usage at a given point in time. The memory clock is varied based on the priority of a given memory access engine, such that the clock is kept or increased to a higher rate for high priority engines such as real-time processing engines to facilitate high performance video capture. Conversely, if a lower priority graphics engine desires access to the memory controller, the system evaluates the memory access demand and reduces the memory clock to reduce power consumption and power dissipation. In one embodiment, a duration of non-access for a given memory access engine is used to determine whether the memory clock frequency should be varied. [0013]
  • FIG. 2 shows a memory [0014] clock control system 200 incorporated on a graphics controller chip 202 containing both memory 110 (DRAM) and memory access request circuits such as video and graphics engines. The memory 110 and the memory controller 112 are on a common chip or die. However, it will be recognized that any of the memory access request engines or circuits may be on separate dies discrete circuits if desired.
  • The memory [0015] clock control system 200 includes a memory access request detector 204 for detecting memory access request data 206 a-206 e. The memory access request data 206 a-206 e (REQ 0 through REQ 4) are request signals (memory access traffic channels) generated by the various graphic memory access engines 102-108 as shown. The memory access request data 206 a-206 e serves as a request to the memory controller 112 requesting access (i.e., data) to the memory 110. The memory access request detector 204 may be any suitable digital logic such as a programmed digital signal processor or other suitable circuitry, software or any suitable combination thereof. The memory access request detector 204 detects the memory access request data 206 a-206 e for a plurality of memory access channels to determine the desired memory access at any given time.
  • The memory [0016] clock control system 200 also includes a variable memory clock generator 208 that receives a variable memory clock control signal 210 to adaptively vary the memory clock signal 212 in response to determining the desired memory usage from the memory access channels represented by the request data 206 a-206 e. The variable memory clock generator 208 includes a programmable phase lock loop (PLL) or any other suitable variable clock generator. For example, multiple clock sources can be selected through a multiplexing circuit or a fixed clock can be divided down or multiplied accordingly.
  • The memory [0017] access request detector 204 detects an increase or reduction in memory access usage by analyzing the request data 206 a-206 e. For example, the memory access request detector analyzes the request data to see which engine is accessing memory, and for how long. The 2D/3D drawing engine is typically given lower priority such that if the display engine requires data for a display frame, and the memory clock is set a slower speed, the memory clock control system 200 increases the memory clock for the display engine. If for example, the detector detects that only the 2D/3D engine is requesting memory access, the clock speed is reduced if it was previously set at a high speed. Also, if for example, only the display engine is active but requires a bandwidth of data that allows a lower clock speed, the clock will be decreased. The variable memory clock generator 208 generates the variable memory clock signal 212 for the memory controller 112 and the memory 110. Also, the variable clock generator 208 may generate other clocks if desired.
  • The memory [0018] clock control system 200 reduces the power consumption of the memory controller 112 and the DRAM or memory 110 by reducing the memory clock frequency when appropriate, and also improves performance by automatically adapting to memory access demands by increasing the memory clock during the periods when high bandwidth demands are required from the memory and memory controller, such as during memory access requests from real time processing engines. Hence the memory clock MCLK signal 212 is dynamically varied based on graphic and image engine usage. The memory clock control system 200 detects which graphic or image engine is operational and varies the memory clock in response to the duration of non-access of memory to decrease power during non-access conditions. Hence the memory clock control system is a type of activity based detector. If desired, the system may include a graphic user interface to allow a user to select priority of the engines.
  • FIG. 3 shows the memory [0019] access request detector 204 including counters 300 a-300 n for determining a duration of non-access of memory by detecting non-access on a per access channel basis. By way of example, the mechanism for determining a duration of non-access of memory may be a counter, as shown, or any other suitable duration detection mechanism. Each counter 300 a-300 n receives the request data 206 a-206 n and increments when no request is detected. The clock may detect a request on each clock cycle, each frame or other suitable time. When the counter times out, the count indicates whether the particular memory access traffic channel (and hence the associated memory access request engine) has been dormant for a long enough period of time to warrant a reduction in MCLK frequency to reduce power consumption. Alternatively, a counter can be decremented when a request is present or any suitable mechanism may be used to detect a non-access condition. The time out period for each counter may be preprogrammed by a display driver to an optimal setting based on such factors as type of engine requesting memory access, display refresh rates and display resolution settings or other suitable criteria. Each of the non-access duration detectors 300 a-300 n outputs duration data 302 a-302 n for each traffic channel to a priority based controller 304. The priority based controller 304 may be any suitable processing device, such as a microprocessor or other suitable logic. The priority based controller 304 serves to prioritize among the received memory request data 206 a-206 n to selectively control the memory clock speed based on the priority of a given request channel. The priority based controller 304 adjusts the variable memory clock control signal 210 to a value to reduce power consumption in response to a detection of reduced memory access usage, or increases the memory clock speed in response to a detection of increased memory access usage to enhance graphics controller performance when usage requires.
  • The variable [0020] memory clock generator 208 includes memory 306 containing predetermined clock rate control data for controlling the variable memory clock 308. The memory 306 may include a lookup table (LUT) containing clock rate control values indexed by the value of the variable memory clock control signal. The predetermined clock rate control data 310 serves as the input to the variable memory clock 308. The variable memory clock 308 may be a phase lock loop circuit or any other suitable variable clock generation circuit, or a fixed PLL clock with multiple clock dividers which are selected using a controlled clock multiplexer. The memory clock is varied at a time when display corruption does not occur. This may be for example during vertical blanking periods or other suitable time.
  • FIG. 4 shows an example of a method of operation for the priority based [0021] controller 304 which starts in block 400 by the priority based controller initializing the counter 308 a-300 n. The priority based controller 304 determines from the counter signals 302 a-302 n whether any traffic channel is active as shown in block 402. If no traffic channels are active, the priority based controller outputs a variable memory clock control signal 210 to select a slowest memory clock frequency as shown in block 404. If desired, the priority based controller 304 may generate a variable memory clock control signal 210 which shuts down the memory clock completely, if desired.
  • All of the traffic channels are evaluated at a given point in time to determine whether an adjustment to the memory clock is necessary. If for example, a traffic channel is detected to be active (e.g., requesting access to the memory) for a predetermined duration as indicated by the [0022] signals 302 a-302 n, the priority based controller 304 determines the current memory clock speed as shown in block 406 by looking at a copy of the lookup table 306 to determine the corresponding memory clock frequency corresponding to the last variable memory clock control signal 210 that was generated. As shown in block 408, the priority based controller 304 determines whether the highest priority channel is active. It determines this based on which counters are outputting data indicating non-access; those memory access engines that have not requested memory access for the time out period. As shown in FIG. 2, the display engine receives the highest priority hence REQ0 as assigned to the display engine 106. The priority based controller 304 is preprogrammed to assign the traffic channel associated with REQ0 as the highest priority request whereafter REQ1 is second priority and so on.
  • If the highest priority traffic channel is not active, the priority based [0023] controller 304 generates a variable memory clock control signal 210 to decrease the memory clock 212 as shown in block 410 to reduce power consumption by the memory controller and memory if the memory clock is not already reduced to the desired amount. It may decrease the memory clock to the next predetermined frequency as set in the look up table or may if desired, reduce it more than one step depending upon its determination of which priority channel is active. If the highest priority channel is active and the current setting for the MCLK signal 212 is not at the highest frequency, the priority based controller 304 will increase the memory clock by generating a suitable variable memory clock control signal 210 so that performance is enhanced to suitably accommodate memory accesses by the highest priority engine. This is shown in block 412. Hence the system increases the memory clock speed in response to a detection of an increase in memory access usage.
  • The priority based [0024] controller 304 then continues to check whether the next lowest priority traffic channel is active as shown in block 414. If it is not, the priority based controller 304 will generate a variable memory clock control signal 210 to decrease the memory clock as shown in block 416. Since only one engine can access the memory at any given point, the priority based controller 304 will decrease the memory clock since it had previously either detected a higher priority access or sufficient non access by the high priority engine indicating that the memory clock is operating at a speed unnecessarily high. If the next highest priority traffic channel is active, the priority based controller 304 will increase the memory clock as shown in block 418. The priority based controller 304 continues the analysis to determine if the last priority traffic channel is active as shown in block 420. If it is not active, indicating no access to the memory is occurring by any of the memory access engines, the priority based controller 304 will decrease the memory clock frequency as shown in block 422. If the lowest priority traffic channel is active, the priority based controller 304 will increase the memory clock by a step as shown in block 424. The process continues on an ongoing basis during the operation of the graphics controller chip.
  • FIG. 5 shows one embodiment of a method for controlling the memory clock which may include for example, increasing the memory clock frequency or decreasing the memory clock frequency as previously described with reference to FIG. 4. In operation, the variable [0025] memory clock generator 208 obtains the current memory clock speed from the lookup table 306 and sets the speed bit for the variable memory clock 308 as shown in blocks 500 and 502. The variable memory clock then controls the memory clock frequency based on which speed bit is set. This is shown in block 504. Either the variable memory clock generator or the memory access request detector generates another control signal which varies the display FIFO watermark, or other suitable mechanism for controlling the display FIFO, so that the display FIFO is filled sooner so that overflows or underflows do not occur in view of the new clock speed. For example, if the clock speed is increased, the FIFO display watermark should be varied to avoid FIFO data overflows. It will be recognized that other memory clock speed related parameters must also be updated (e.g., refresh for memories).
  • FIG. 6 shows another embodiment of a dynamic memory [0026] clock control system 600 having access to registers 602 containing status data 604 received from a display driver 606 or other suitable memory access loading determinator. The status data 604 represents whether a memory access engine is active and or data representing whether to vary the memory clock based on request engine activity. As shown in this embodiment, the memory access request detector 608 evaluates only select memory access engines, such as the 2D/3D graphics engine 104. The display driver 606 determines whether other memory access engines are accessing memory and whether, if desired, the memory clock should be varied. The memory access request detector 608 also receives enable data, such as vertical blanking period data, to determine a suitable time to vary the memory clock to avoid display data corruption.
  • FIG. 7 shows, by way of example, the operation of the dynamic memory [0027] clock control system 600 based on analysis of two memory access engines—the display engine and the 2D/3D graphics engine. The system starts as shown in block 700 by resetting any status bits or other control bits. As shown in block 702, the system determines whether the 2D/3D draw engine is active by monitoring the request data via a counter as previously described with respect FIG. 2. If the 2D/3D draw engine is active, a 2D/3D status bit is set, as shown in block 704. The system then checks the vertical blanking enable signal to determine whether memory clock control can occur. This is shown in block 706. In block 708, the system checks the registers 602 to determine whether the display engine active bit is set. If set, the display engine is performing a memory request.
  • If the display bit is set, the system checks if a priority override bit is set in the [0028] register 602, as shown in block 710. The display driver or control logic prioritizes among the received memory request data as desired. The priority bit may be set by the display driver if for example high bandwidth display modes occur. This overrides power reduction control. This can occur if the refresh rate is set at a high rate and display resolution is high, for example. If the priority bit is set, the system set the clock speed to a higher speed as shown in block 712. The status bits are then reset, as indicated in block 714, and the process continues. Also if desired, a low display bandwidth may prevent the priority bit from being set, however, the system may increase the clock speed if the 2D/3D draw engine is active to provide better rendering performance and again reduce the memory clock speed when the draw engine is inactive.
  • Referring back to block [0029] 708, if the display bit is not active, or if active but the priority override bit is not set, the system determines if the 2D/3D engine is active as shown in block 716. If set, the system determines if the priority override bit is also set. This is shown in block 718. As shown in block 720, if the 2D/3D status bit is set and the priority override is not enabled, the system reduces the memory clock speed. If 2D/3D status bit is not set, indicating that neither the display engine is active nor the draw engine is active, the system determines whether a change in status has occurred since last checked, as shown in block 722. If a change has occurred, indicating that one engine had previously been active, the memory clock speed is reduced. The process continues to evaluate the memory request demand on a continuous basis and adjust the memory clock speed to reduce energy consumption when prudent.
  • It should be understood that the implementation of other variations and modifications of the invention in its various aspects will be apparent to those of ordinary skill in the art, and that the invention is not limited by the specific embodiments described. For example, any suitable control criteria may be used. It is therefore contemplated to cover by the present invention, any and all modifications, variations, or equivalents that fall within the spirit and scope of the basic underlying principles disclosed and claimed herein. [0030]

Claims (21)

What is claimed is:
1. A memory clock control system for facilitating multiple memory access requests comprising:
means for detecting memory access request data for a plurality of memory access channels to determine desired memory access; and
means, operatively coupled to the detecting means, for adaptively varying a memory clock in response to determining the desired memory usage from the plurality of memory access channels.
2. The system of
claim 1
wherein the detection means further includes means for determining a duration of non-access of memory on a per access channel basis.
3. The system of
claim 2
wherein the duration determination means includes a counter responsive to the memory access request data.
4. The system of
claim 1
wherein the means for adaptively varying the memory clock includes means for generating a variable memory clock control signal in response to an amount of desired memory access.
5. The system of
claim 4
wherein the means for adaptively varying includes memory access priority means for prioritizing among received memory request data to selectively control the memory clock speed.
6. The system of
claim 1
wherein the means for adaptively varying decreases the memory clock speed to reduce power consumption in response to a detection of reduced memory access usage by the means for detecting.
7. The system of
claim 1
wherein the means for adaptively varying increases the memory clock speed in response to a detection of increased memory access usage by the means for detecting.
8. The system of
claim 1
further including memory containing predetermined clock rate control data for controlling the variable memory clock.
9. The system of
claim 1
wherein the memory access requests are generated by a plurality of graphic engines in a graphics control system.
10. The system of
claim 9
wherein the graphic engines include at least a real time display engine and a video capture engine.
11. A memory clock control system for facilitating multiple memory access requests comprising:
means for detecting memory access request data for a plurality of memory access channels to determine desired memory access by determining at least one of a duration of non-access of memory, a reduction in access of memory, on a per access channel basis; and
means, operatively coupled to the detecting means, for adaptively varying a memory clock in response to determining the desired memory usage from the plurality of memory access channels wherein the means for adaptively varying decreases the memory clock speed to reduce power consumption in response to a detection of reduced memory access usage by the means for detecting.
12. The system of
claim 11
wherein the duration determination means includes a counter responsive to the memory access request data.
13. The system of
claim 11
wherein the means for adaptively varying the memory clock includes means for generating a variable memory clock control signal in response to an amount of desired memory access.
14. The system of
claim 13
wherein the means for adaptively varying includes memory access priority means for prioritizing among received memory request data to selectively control the memory clock speed.
15. The system of
claim 11
wherein the means for adaptively varying increases the memory clock speed in response to a detection of increased memory access usage by the means for detecting.
16. The system of
claim 11
further including memory containing predetermined clock rate control data for controlling the variable memory clock.
17. The system of
claim 11
wherein the memory access requests are generated by a plurality of graphic engines in a graphics control system.
18. The system of
claim 17
wherein the graphic engines include at least a real time display engine and a video capture engine.
19. A memory clock control system for facilitating multiple memory access requests comprising:
means for detecting memory access request data for a plurality of memory access channels to determine desired memory access by determining a duration of non-access of memory on a per access channel basis;
a variable memory clock;
memory containing predetermined clock rate control data for controlling the variable memory clock and
means, operatively coupled to the detecting means, the memory and the variable memory clock, for adaptively varying the memory clock in response to determining the desired memory usage from the plurality of memory access channels, including means for generating a variable memory clock control signal in response to an amount of desired memory access wherein the means for adaptively varying decreases the memory clock speed to reduce power consumption in response to a detection of reduced memory access usage by the means for detecting and increasing the memory clock speed in response to a detection of an increase in memory access usage.
20. The memory clock control system of
claim 20
wherein the memory stores a lookup table containing data representing differing memory clock speeds.
21. The memory clock control system of
claim 20
wherein the means for detecting memory access request data includes a plurality of counters corresponding to a different memory access request channel.
US09/130,746 1998-08-07 1998-08-07 Dynamic memory clock control system and method Expired - Lifetime US6460125B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US09/130,746 US6460125B2 (en) 1998-08-07 1998-08-07 Dynamic memory clock control system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/130,746 US6460125B2 (en) 1998-08-07 1998-08-07 Dynamic memory clock control system and method

Publications (2)

Publication Number Publication Date
US20010011356A1 true US20010011356A1 (en) 2001-08-02
US6460125B2 US6460125B2 (en) 2002-10-01

Family

ID=22446132

Family Applications (1)

Application Number Title Priority Date Filing Date
US09/130,746 Expired - Lifetime US6460125B2 (en) 1998-08-07 1998-08-07 Dynamic memory clock control system and method

Country Status (1)

Country Link
US (1) US6460125B2 (en)

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139362A1 (en) * 2002-07-23 2004-07-15 Soichiro Inaba Data processing apparatus
WO2004063916A2 (en) * 2003-01-09 2004-07-29 Intel Corporation Memory controller considering processor power states
GB2404055A (en) * 2003-07-14 2005-01-19 Samsung Electronics Co Ltd Accessing dynamic frequency scaling cache during clock idle time
US20050033910A1 (en) * 2003-06-30 2005-02-10 Michael Sommer Method for data transfer
US20070226387A1 (en) * 2006-02-28 2007-09-27 Arm Limited Word reordering upon bus size resizing to reduce hamming distance
US20070283077A1 (en) * 2006-05-30 2007-12-06 Christian Klein Memory and Memory Communication System
US20080162951A1 (en) * 2007-01-02 2008-07-03 Kenkare Prashant U System having a memory voltage controller and method therefor
US20080294820A1 (en) * 2006-02-28 2008-11-27 Arm Limited Latency dependent data bus transmission
US7681057B2 (en) * 2001-09-28 2010-03-16 Lexar Media, Inc. Power management of non-volatile memory systems
US20100162256A1 (en) * 2008-12-18 2010-06-24 Alexander Branover Optimization of application power consumption and performance in an integrated system on a chip
US20100257379A1 (en) * 2009-04-02 2010-10-07 Qualcomm Incorporated Multiple Power Mode System and Method for Memory
EP2278432A1 (en) * 2003-09-29 2011-01-26 ATI Technologies Inc. Adaptive temperature dependent feedback clock control system and method
US20110202788A1 (en) * 2010-02-12 2011-08-18 Blue Wonder Communications Gmbh Method and device for clock gate controlling
EP2385468A1 (en) * 2010-05-05 2011-11-09 Broadcom Corporation Memory power manager
GB2481492A (en) * 2010-06-23 2011-12-28 Intel Corp Adjusting the operation frequency of a memory system based on the utilisation measurement.
US20120017099A1 (en) * 2010-07-13 2012-01-19 David Howard S Method and apparatus to limit memory power
US20120169746A1 (en) * 2011-12-29 2012-07-05 Samson Eric C Method, apparatus, and system for energy efficiency and energy conservation including non frame aware frequency selection
US20130275790A1 (en) * 2010-12-22 2013-10-17 Fujitsu Limited Multicore processor system and power control method
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
US8812808B2 (en) 2009-12-18 2014-08-19 Universiteit Gent Counter architecture for online DVFS profitability estimation
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9122632B2 (en) 2012-06-30 2015-09-01 Intel Corporation Programmable power performance optimization for graphics cores
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US20150363116A1 (en) * 2014-06-12 2015-12-17 Advanced Micro Devices, Inc. Memory controller power management based on latency
US9218045B2 (en) 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US20150378424A1 (en) * 2014-06-27 2015-12-31 Telefonaktiebolaget L M Ericsson (Publ) Memory Management Based on Bandwidth Utilization
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
WO2017172267A1 (en) * 2016-03-27 2017-10-05 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
US20170371564A1 (en) * 2016-06-28 2017-12-28 Advanced Micro Devices, Inc. Method and apparatus for memory efficiency improvement by providing burst memory access control
US20180210849A1 (en) * 2017-01-26 2018-07-26 Canon Kabushiki Kaisha Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus
US20180239722A1 (en) * 2010-09-14 2018-08-23 Advanced Micro Devices, Inc. Allocation of memory buffers in computing system with multiple memory channels
US10175905B2 (en) 2016-09-13 2019-01-08 Apple Inc. Systems and methods for dynamically switching memory performance states
US10416910B1 (en) * 2016-09-20 2019-09-17 Altera Corporation Apparatus and method to reduce memory subsystem power dynamically
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US20220129321A1 (en) * 2020-10-28 2022-04-28 Apical Limited Information processing apparatus and a method for processing a workload
US20230040336A1 (en) * 2021-08-06 2023-02-09 Micron Technology, Inc. Adaptive throughput monitoring

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6820209B1 (en) * 1999-07-15 2004-11-16 Apple Computer, Inc. Power managed graphics controller
US7215339B1 (en) 2000-09-28 2007-05-08 Rockwell Automation Technologies, Inc. Method and apparatus for video underflow detection in a raster engine
US6831647B1 (en) * 2000-09-28 2004-12-14 Rockwell Automation Technologies, Inc. Raster engine with bounded video signature analyzer
US7114086B2 (en) * 2002-01-04 2006-09-26 Ati Technologies, Inc. System for reduced power consumption by monitoring instruction buffer and method thereof
US6894691B2 (en) * 2002-05-01 2005-05-17 Dell Products L.P. Dynamic switching of parallel termination for power management with DDR memory
US7149909B2 (en) * 2002-05-09 2006-12-12 Intel Corporation Power management for an integrated graphics device
US6950105B2 (en) * 2002-06-03 2005-09-27 Ati Technologies Inc. Power consumption management in a video graphics accelerator
US7243217B1 (en) * 2002-09-24 2007-07-10 Advanced Micro Devices, Inc. Floating point unit with variable speed execution pipeline and method of operation
US6992675B2 (en) * 2003-02-04 2006-01-31 Ati Technologies, Inc. System for displaying video on a portable device and method thereof
US6958953B2 (en) * 2003-05-13 2005-10-25 International Business Machines Corporation Real time clock circuit having an internal clock generator
US7640446B1 (en) * 2003-09-29 2009-12-29 Marvell International Ltd. System-on-chip power reduction through dynamic clock frequency
US7343508B2 (en) * 2004-03-05 2008-03-11 Ati Technologies Inc. Dynamic clock control circuit for graphics engine clock and memory clock and method
JP2005339310A (en) * 2004-05-28 2005-12-08 Renesas Technology Corp Semiconductor device
US7500123B2 (en) * 2004-06-28 2009-03-03 Ati Technologies Ulc Apparatus and method for reducing power consumption in a graphics processing device
US7827424B2 (en) * 2004-07-29 2010-11-02 Ati Technologies Ulc Dynamic clock control circuit and method
US8593470B2 (en) * 2005-02-24 2013-11-26 Ati Technologies Ulc Dynamic memory clock switching circuit and method for adjusting power consumption
US7800621B2 (en) * 2005-05-16 2010-09-21 Ati Technologies Inc. Apparatus and methods for control of a memory controller
US8102398B2 (en) * 2006-03-03 2012-01-24 Ati Technologies Ulc Dynamically controlled power reduction method and circuit for a graphics processor
US8314806B2 (en) * 2006-04-13 2012-11-20 Intel Corporation Low power display mode
JP5065618B2 (en) * 2006-05-16 2012-11-07 株式会社日立製作所 Memory module
US7882384B2 (en) * 2006-08-31 2011-02-01 National Semiconductor Corporation Setting and minimizing a derived clock frequency based on an input time interval
US8259119B1 (en) 2007-11-08 2012-09-04 Nvidia Corporation System and method for switching between graphical processing units
US8233000B1 (en) * 2007-11-08 2012-07-31 Nvidia Corporation System and method for switching between graphical processing units
JP2009122922A (en) * 2007-11-14 2009-06-04 Panasonic Corp Data processor
JP4772891B2 (en) * 2009-06-30 2011-09-14 株式会社東芝 Host controller, computer terminal and card access method
US8510598B2 (en) * 2010-03-29 2013-08-13 Dot Hill Systems Corporation Buffer management method and apparatus for power reduction during flush operation
US8799685B2 (en) 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
KR102086719B1 (en) 2014-03-11 2020-03-09 삼성전자주식회사 Memory controller and memory system including the same

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5804749A (en) * 1995-12-28 1998-09-08 Yamaha Corporation Sound source chip having variable clock to optimize external memory access
US5781768A (en) * 1996-03-29 1998-07-14 Chips And Technologies, Inc. Graphics controller utilizing a variable frequency clock
US6073223A (en) * 1997-07-21 2000-06-06 Hewlett-Packard Company Memory controller and method for intermittently activating and idling a clock signal for a synchronous memory
KR100238188B1 (en) * 1997-09-12 2000-01-15 윤종용 Method and apparatus for generating memory clock of video controller

Cited By (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681057B2 (en) * 2001-09-28 2010-03-16 Lexar Media, Inc. Power management of non-volatile memory systems
US7127626B2 (en) * 2002-07-23 2006-10-24 Oki Electric Industry Co., Ltd. Data processing apparatus configured to operate with one of more clock frequencies determined by a priority order derived from one or more interrupt signals from a CPU
US20040139362A1 (en) * 2002-07-23 2004-07-15 Soichiro Inaba Data processing apparatus
WO2004063916A3 (en) * 2003-01-09 2005-04-14 Intel Corp Memory controller considering processor power states
KR100692345B1 (en) * 2003-01-09 2007-03-12 인텔 코오퍼레이션 Memory controller considering processor power states
WO2004063916A2 (en) * 2003-01-09 2004-07-29 Intel Corporation Memory controller considering processor power states
US20050033910A1 (en) * 2003-06-30 2005-02-10 Michael Sommer Method for data transfer
GB2404055A (en) * 2003-07-14 2005-01-19 Samsung Electronics Co Ltd Accessing dynamic frequency scaling cache during clock idle time
GB2404055B (en) * 2003-07-14 2006-10-11 Samsung Electronics Co Ltd Methods, circuits and systems for utilizing idle time in dynamic frequency scaling cache memories
US20050015553A1 (en) * 2003-07-14 2005-01-20 Gi-Ho Park Methods, circuits, and systems for utilizing idle time in dynamic frequency scaling cache memories
US7305521B2 (en) 2003-07-14 2007-12-04 Samsung Electronics Co., Ltd. Methods, circuits, and systems for utilizing idle time in dynamic frequency scaling cache memories
EP2278432A1 (en) * 2003-09-29 2011-01-26 ATI Technologies Inc. Adaptive temperature dependent feedback clock control system and method
US7734853B2 (en) 2006-02-28 2010-06-08 Arm Limited Latency dependent data bus transmission
US20080294820A1 (en) * 2006-02-28 2008-11-27 Arm Limited Latency dependent data bus transmission
US7565516B2 (en) * 2006-02-28 2009-07-21 Arm Limited Word reordering upon bus size resizing to reduce Hamming distance
US20070226387A1 (en) * 2006-02-28 2007-09-27 Arm Limited Word reordering upon bus size resizing to reduce hamming distance
US20070283077A1 (en) * 2006-05-30 2007-12-06 Christian Klein Memory and Memory Communication System
US8352695B2 (en) * 2006-05-30 2013-01-08 Lantiq Deutschland Gmbh Selectable access rates in a memory and memory communication system
US20080162951A1 (en) * 2007-01-02 2008-07-03 Kenkare Prashant U System having a memory voltage controller and method therefor
US7870400B2 (en) * 2007-01-02 2011-01-11 Freescale Semiconductor, Inc. System having a memory voltage controller which varies an operating voltage of a memory and method therefor
US20100162256A1 (en) * 2008-12-18 2010-06-24 Alexander Branover Optimization of application power consumption and performance in an integrated system on a chip
WO2010080499A3 (en) * 2008-12-18 2010-09-02 Globalfoundries Inc. Optimization of application power consumption and performance in an integrated system on a chip
US8230239B2 (en) 2009-04-02 2012-07-24 Qualcomm Incorporated Multiple power mode system and method for memory
US20100257379A1 (en) * 2009-04-02 2010-10-07 Qualcomm Incorporated Multiple Power Mode System and Method for Memory
CN102365605A (en) * 2009-04-02 2012-02-29 高通股份有限公司 Multiple power mode system and method for memory
WO2010115136A1 (en) * 2009-04-02 2010-10-07 Qualcomm Incorporated Multiple power mode system and method for memory
JP2014078251A (en) * 2009-04-02 2014-05-01 Qualcomm Inc Method of displaying associated information, and portable communication terminal
US8812808B2 (en) 2009-12-18 2014-08-19 Universiteit Gent Counter architecture for online DVFS profitability estimation
US20110202788A1 (en) * 2010-02-12 2011-08-18 Blue Wonder Communications Gmbh Method and device for clock gate controlling
EP2385468A1 (en) * 2010-05-05 2011-11-09 Broadcom Corporation Memory power manager
US8812889B2 (en) 2010-05-05 2014-08-19 Broadcom Corporation Memory power manager
GB2481492B (en) * 2010-06-23 2012-11-07 Intel Corp Adaptive memory frequency scaling
GB2481492A (en) * 2010-06-23 2011-12-28 Intel Corp Adjusting the operation frequency of a memory system based on the utilisation measurement.
US8738937B2 (en) * 2010-07-13 2014-05-27 Intel Corporation Method and apparatus to limit memory power
US20120017099A1 (en) * 2010-07-13 2012-01-19 David Howard S Method and apparatus to limit memory power
US20180239722A1 (en) * 2010-09-14 2018-08-23 Advanced Micro Devices, Inc. Allocation of memory buffers in computing system with multiple memory channels
US10795837B2 (en) * 2010-09-14 2020-10-06 Advanced Micro Devices, Inc. Allocation of memory buffers in computing system with multiple memory channels
US9483101B2 (en) * 2010-12-22 2016-11-01 Fujitsu Limited Multicore processor system and power control method
US20130275790A1 (en) * 2010-12-22 2013-10-17 Fujitsu Limited Multicore processor system and power control method
US8862909B2 (en) 2011-12-02 2014-10-14 Advanced Micro Devices, Inc. System and method for determining a power estimate for an I/O controller based on monitored activity levels and adjusting power limit of processing units by comparing the power estimate with an assigned power limit for the I/O controller
US8924758B2 (en) 2011-12-13 2014-12-30 Advanced Micro Devices, Inc. Method for SOC performance and power optimization
US9105249B2 (en) * 2011-12-29 2015-08-11 Intel Corporation Energy conservation in a controller using dynamic frequency selection
US20120169746A1 (en) * 2011-12-29 2012-07-05 Samson Eric C Method, apparatus, and system for energy efficiency and energy conservation including non frame aware frequency selection
US9852714B2 (en) 2011-12-29 2017-12-26 Intel Corporation Energy conservation in a controller using dynamic frequency selection
US9122632B2 (en) 2012-06-30 2015-09-01 Intel Corporation Programmable power performance optimization for graphics cores
US9218045B2 (en) 2012-06-30 2015-12-22 Intel Corporation Operating processor element based on maximum sustainable dynamic capacitance associated with the processor
US9812093B2 (en) 2012-06-30 2017-11-07 Intel Corporation Programmable power performance optimization for graphics cores
US9164931B2 (en) 2012-09-29 2015-10-20 Intel Corporation Clamping of dynamic capacitance for graphics
US20140181427A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Compound Memory Operations in a Logic Layer of a Stacked Memory
US9250910B2 (en) 2013-09-27 2016-02-02 Intel Corporation Current change mitigation policy for limiting voltage droop in graphics logic
US9514715B2 (en) 2013-12-23 2016-12-06 Intel Corporation Graphics voltage reduction for load line optimization
US20150363116A1 (en) * 2014-06-12 2015-12-17 Advanced Micro Devices, Inc. Memory controller power management based on latency
US20150378424A1 (en) * 2014-06-27 2015-12-31 Telefonaktiebolaget L M Ericsson (Publ) Memory Management Based on Bandwidth Utilization
WO2017172267A1 (en) * 2016-03-27 2017-10-05 Qualcomm Incorporated Power-reducing memory subsystem having a system cache and local resource management
CN109074331A (en) * 2016-03-27 2018-12-21 高通股份有限公司 Memory sub-system is reduced with the power of system cache and location resource allocation
US20170371564A1 (en) * 2016-06-28 2017-12-28 Advanced Micro Devices, Inc. Method and apparatus for memory efficiency improvement by providing burst memory access control
US10175905B2 (en) 2016-09-13 2019-01-08 Apple Inc. Systems and methods for dynamically switching memory performance states
US10416910B1 (en) * 2016-09-20 2019-09-17 Altera Corporation Apparatus and method to reduce memory subsystem power dynamically
US20180210849A1 (en) * 2017-01-26 2018-07-26 Canon Kabushiki Kaisha Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus
US11163711B2 (en) * 2017-01-26 2021-11-02 Canon Kabushiki Kaisha Memory access system, method for controlling the same, computer-readable storage medium, and image forming apparatus
US10565079B2 (en) 2017-09-28 2020-02-18 Intel Corporation Determination of idle power state
US20220129321A1 (en) * 2020-10-28 2022-04-28 Apical Limited Information processing apparatus and a method for processing a workload
US20230040336A1 (en) * 2021-08-06 2023-02-09 Micron Technology, Inc. Adaptive throughput monitoring

Also Published As

Publication number Publication date
US6460125B2 (en) 2002-10-01

Similar Documents

Publication Publication Date Title
US6460125B2 (en) Dynamic memory clock control system and method
US6657634B1 (en) Dynamic graphics and/or video memory power reducing circuit and method
US7971087B2 (en) Dynamic clock control circuit and method
US6950105B2 (en) Power consumption management in a video graphics accelerator
US6820209B1 (en) Power managed graphics controller
US7657775B1 (en) Dynamic memory clock adjustments
US6971034B2 (en) Power/performance optimized memory controller considering processor power states
US6850240B1 (en) Method and apparatus for scalable image processing
US20030131269A1 (en) System for reduced power consumption by monitoring instruction buffer and method thereof
US8072459B2 (en) Data processing unit with multi-graphic controller and method for processing data using the same
US20060253675A1 (en) Method and apparatus for scheduling real-time and non-real-time access to a shared resource
US6848058B1 (en) Power reduction circuit and method with multi clock branch control
US9684633B2 (en) Adaptive service controller, system on chip and method of controlling the same
US20080174606A1 (en) Method and apparatus for low power refresh of a display device
US20030095447A1 (en) Shared memory controller for display processor
US11947477B2 (en) Shared buffer for multi-output display systems
US10055809B2 (en) Systems and methods for time shifting tasks
US20060022985A1 (en) Preemptive rendering arbitration between processor hosts and display controllers
US7313031B2 (en) Information processing apparatus and method, memory control device and method, recording medium, and program
US20040210782A1 (en) Apparatus and method for real-time adjusting system performance of a computer
US7205957B2 (en) Mechanism for adjusting the operational parameters of a component with minimal impact on graphics display
US8037261B2 (en) Closed-loop system for dynamically distributing memory bandwidth
US7532658B2 (en) Apparatus for reducing electromagnetic interference and method therefor
US20210006801A1 (en) Dynamic bandwidth voting
GB2329985A (en) Shared memory control method

Legal Events

Date Code Title Description
AS Assignment

Owner name: ATI TECHNOLOGIES, CANADA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:LEE, KEITH SK;SINCLAIR, DAVID;REEL/FRAME:009398/0427;SIGNING DATES FROM 19980717 TO 19980729

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

AS Assignment

Owner name: ATI TECHNOLOGIES ULC, CANADA

Free format text: CHANGE OF NAME;ASSIGNOR:ATI TECHNOLOGIES INC.;REEL/FRAME:026270/0027

Effective date: 20061025

FPAY Fee payment

Year of fee payment: 12