KR20040104713A - 집적 그래픽 장치를 위한 전력 관리 - Google Patents

집적 그래픽 장치를 위한 전력 관리 Download PDF

Info

Publication number
KR20040104713A
KR20040104713A KR10-2004-7017963A KR20047017963A KR20040104713A KR 20040104713 A KR20040104713 A KR 20040104713A KR 20047017963 A KR20047017963 A KR 20047017963A KR 20040104713 A KR20040104713 A KR 20040104713A
Authority
KR
South Korea
Prior art keywords
frequency
circuit
clock signal
graphics
signal
Prior art date
Application number
KR10-2004-7017963A
Other languages
English (en)
Other versions
KR100866428B1 (ko
Inventor
잉 추이
에릭 삼손
아리엘 버코비츠
아디트야 나발리
데이비드 와야트
레슬리 클린
조셉 트상
마크 블레이크
데이비드 포이스너
윌리암 주니어 스티븐스
비제이 사르-데사이
Original Assignee
인텔 코오퍼레이션
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 인텔 코오퍼레이션 filed Critical 인텔 코오퍼레이션
Publication of KR20040104713A publication Critical patent/KR20040104713A/ko
Application granted granted Critical
Publication of KR100866428B1 publication Critical patent/KR100866428B1/ko

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/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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
    • 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
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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

본 발명의 일 실시예에 있어서, 집적 장치는, 클럭 생성기로부터 수신된 클럭 신호의 전압 및 주파수 양자의 조절을 통하여 그래픽 메모리 제어기 허브(graphics memory controller hub, GMCH)의 전력 소비를 제어하는 메커니즘을 이용한다. GMCH는 그래픽 코어(graphics core)와, 그래픽 코어로 공급되는 렌더 클럭 신호(render clock signal)의 주파수 등의 동작적인 행동을 변경하는 회로를 포함한다. 이 회로는 그래픽 코어의 유휴도를 모니터링하고, 유휴도가 소정의 시간 퍼센티지를 초과하는 경우 렌더 클럭 신호의 주파수 레벨을 감소시키도록 구성된다.

Description

집적 그래픽 장치를 위한 전력 관리{POWER MANAGEMENT FOR INTEGRATED GRAPHICS DEVICE}
지난 몇 년간, 반도체 기술에는 많은 진전이 있었으며, 이는 고주파에서 동작하고 추가적인 그리고/또는 향상된 특징을 지원하는 개선된 그래픽 제어기의 개발을 가져왔다. 이러한 진전은 하드웨어 제조자가 더 빠르고 정교한 그래픽 카드 및 컴퓨터를 설계 및 제작할 수 있도록 하였지만, 배터리 전원을 사용하는 랩톱 및 핸드헬드 컴퓨터(handheld computers)에 불리한 면도 가져왔다. 특히, 이러한 배터리 전원을 사용하는 컴퓨터는 과거 세대 컴퓨터보다 더 많은 전력을 소비하고 부산물로서 더 많은 열을 발산한다.
예를 들어, 그래픽 메모리 제어기 허브 내에서, 그래픽 코어(graphic core)는 많은 게이트 수를 갖는 주요 기능 블록 중 하나이다. 따라서, 그래픽 메모리 제어기 허브에 의한 전력 소모는 주로 그래픽 코어에 인가되는 전압 및 주파수와 연관된다. 즉, 그래픽 코어 전압이 증가하면, 그래픽 메모리 제어기 허브에 의하여 소비되는 전력도 증가한다. 그래픽 코어의 이용은 애플리케이션에 따라 상당히 다를 수 있으므로, 최소의 그래픽을 갖는 애플리케이션을 처리하기 위하여 그래픽 코어에 높은 전압 및 주파수 신호를 제공한다면, 컴퓨터는 불필요하게 전력을 낭비하게 될 것이다. 이는, 컴퓨터가 불필요하게 높은 온도에서 동작하도록 할 뿐만 아니라, 랩톱 및 핸드헬드 컴퓨터의 배터리 수명을 불필요하게 감소시킬 것이다.
본 발명은 전력 관리에 관한 것으로서, 특히, 예를 들어 요구(demand) 및 로딩(loading)과 같은 이벤트에 기초하여 그래픽 제어기에 의한 전력 소비를 조절하는 것과 관련된다.
본 발명은 아래의 설명 및 본 발명의 실시예를 도시하는 데에 사용되는 첨부 도면을 참조함으로써 잘 이해될 것이다.
도 1은 컴퓨팅 장치 내에 사용되는 로직의 예시적 실시예를 도시하는 도면.
도 2는 코어 주파수 및/또는 전압을 제어하기 위하여 클럭 생성기와 함께 동작하는 그래픽 메모리 제어기 허브(graphic memory controller hub; GMCH)의 제1 예시적 실시예를 도시하는 도면.
도 3은 코어 주파수 및/또는 전압을 제어하기 위하여 클럭 생성기와 함께 동작하는 그래픽 메모리 제어기 허브의 제2 예시적 실시예를 도시하는 도면.
도 4는 GMCH의 작동 제어 회로(activity control circuit), 특히 도 2 및 3의 상태 시퀀서(state sequencer) 및 작동 지시기 회로(activity indicator circuit)의 예시적 실시예를 도시하는 도면.
도 5a는 도 4의 작동 제어 회로에 의하여 사용되는 유휴 스테이터스 페이지(Idle Status Page; ISP) 레지스터의 예시적 실시예를 도시하는 도면.
도 5b는 도 4의 작동 제어 회로에 의하여 사용되는 유휴 제어 및 스테이터스(Idle Control and Status Page; ICS) 레지스터의 예시적 실시예를 도시하는 도면.
도 6은 도 4의 작동 제어 회로의 유휴 검출기(idle detector)의 예시적 실시예를 도시하는 도면.
도 7a 및 7b는 도 4의 작동 제어 회로에 의한 "고속"으로부터 "저속"으로의 일반적 주파수 스위칭 동작을 나타내는 흐름도의 예시적 실시예.
도 8은 도 4의 작동 제어 회로의 주파수 스위칭 유닛의 동작을 도시하는 흐름도의 예시적 실시예.
도 9는 디스플레이에 의하여 이용되는 주파수 및/또는 전압을 제어하기 위하여 클럭 생성기와 함께 동작하는 그래픽 메모리 제어기 허브의 제3 예시적 실시예를 도시하는 도면.
도 10은 도 9의 동기화기(synchronizer) 로직의 예시적 실시예를 도시하는 도면.
도 11은 GMCH 주파수 및 전압 스로틀링(voltage throttling)을 제어하는 소프트웨어 모듈의 예시적 실시예를 도시하는 도면.
도 12는 도 11의 소프트웨어 모듈의 예시적인 일반적 동작을 도시한 다이어그램.
도 13은 컴퓨팅 장치의 동작 행위를 제어하기 위한 프로그램 폴리시(policies)로의 제1 사용자 인터페이스의 예시적 실시예를 도시하는 도면.
도 14는 컴퓨팅 장치의 동작 행위를 제어하기 위한 프로그램 폴리시로의 제2 사용자 인터페이스의 예시적 실시예를 도시하는 도면.
본 발명의 제1 태양에 따르면, 그래픽 코어(graphics core); 및 그래픽 코어로 공급되는 렌더 클럭 신호(render clock signal)의 주파수를 변경하기 위한 회로로서, 그래픽 코어의 유휴도(idleness)를 모니터링하고, 유휴도가 정해진 시간 퍼센티지를 초과하면 렌더 클럭 신호의 주파수 레벨을 감소시키는 회로를 포함하는 그래픽 메모리 제어기 허브(graphics memory controller hub)가 제공된다.
본 발명의 제2 태양에 따르면, 그래픽 메모리 제어기 허브의 유휴도를 검사하기 전에 렌더 클럭 신호의 사이클의 수를 설정하는 제1 카운터; 그래픽 메모리 제어기 허브가 유휴상태일 때 렌더 클럭 신호의 각 사이클마다 증가되는 제2 카운터; 제2 카운터의 카운트 값과 소정의 임계치를 비교하는 감산기; 및 카운트 값이 소정의 임계치보다 크면 렌더 클럭 신호의 주파수를 조절하는 주파수 스위칭 유닛을 포함하는, 그래픽 메모리 제어기 허브의 클러킹 주파수(clocking frequency)를 내부적으로 제어하기 위한 회로가 제공된다.
본 발명의 제3 태양에 따르면, 그래픽 코어; 및 그래픽 코어의 동작적인 행동(operational behavior)과 관련된 이벤트를 모니터링하고, 그래픽 코어의 동작적인 행동의 조절을 위한 이벤트의 검출시에 그래픽 코어에 신호를 보내는 회로를 포함하는 집적 장치가 제공된다.
본 발명의 제4 태양에 따르면, 프로세서; 및 프로세서에 연결되고, 그래픽 코어와, 그래픽 코어로부터 공급되는 전압 및 렌더 클럭 신호의 주파수를 변경하는 회로를 포함하는 그래픽 메모리 제어기 허브- 상기 회로는, 그래픽 코어의 측정된 유휴도가 초과되는 경우 렌더 클럭 신호의 주파수 레벨을 감소시킴 -를 포함하는 컴퓨팅 장치가 제공된다.
일반적으로, 본 발명의 다양한 실시예는 전압 및 주파수 양자의 조절을 통하여 전자 장치에 의한 전력 소비를 제어하기 위한 장치 및 방법을 설명한다. 일 실시예로서, 이러한 전압 및 주파수 제어는 그래픽 메모리 제어기 허브(GMCH)에 적용된다.
본 발명의 실시예를 공통적으로 설명하기 위하여 아래의 상세한 설명은 주로 블록도 및 흐름도를 참조하여 제공된다. 본 설명의 이해를 불필요하게 혼동시키는 것을 피하기 위하여, 공지된 회로 및 처리 동작은 상세하게 설명하지 않는다.
본 발명의 소정의 특징을 설명하기 위하여 소정의 용어가 사용된다. 예를 들어, "컴퓨팅 장치"는 컴퓨터(예를 들어, 데스크톱, 랩톱, 핸드헬드, 서버, 메인프레임 등) 또는 셋톱 박스, 가전제품(예를 들어 텔레비전), 게임 콘솔 등과 같이 그래픽 메모리 제어기를 갖는 전자 제품일 수 있다.
일반적으로, 컴퓨팅 장치는 내부 로직, 즉 하드웨어, 펌웨어, 소프트웨어 모듈(들) 또는 이들의 임의의 조합으로 구성될 수 있다. "소프트웨어 모듈"은, 실행시 소정의 기능을 수행하는 일련의 명령어들이다. 소프트웨어 모듈의 예는 운영 시스템, 애플리케이션, 애플릿, 프로그램 또는 루틴까지도 포함한다. 하나 이상의 소프트웨어 모듈은 기계 판독 가능 매체(machine-readable medium)에 저장될 수 있으며, 이러한 매체는 반도체 메모리 장치, 롬(ROM), 플래시 메모리, 일종의 소거가능 프로그래밍 가능 ROM(EPROM 또는 EEPROM), 플로피 디스켓, 컴팩트 디스크, 광 디스크, 하드 디스크 등을 포함하지만 이들로 제한되지는 않는다. "로직 하이(logic high)" 및 "어서팅됨(asserted)"(또는 이 표현을 임의의 시제로 표현한 것)이라는 용어는 신호를 제1 상태, 또는 소정의 전압 위 또는 아래로 하는 것을 의미한다. "로직 로우(logic low)" 및 "디어서팅됨(deasserted)"이라는 용어는 신호를 제1 상태와 다른 새로운 상태로 하는 것을 의미한다.
Ⅰ. 일반적 아키텍쳐
도 1에는 컴퓨팅 장치(100) 내에서 사용되는 회로의 예시적 실시예가 도시되어 있다. 컴퓨팅 장치(100)는 프로세서(110), 클럭 생성기(120), 메모리(130) 및 예를 들어 그래픽 메모리 제어기 허브(GMCH)와 같은 집적 장치(140)를 포함한다. GMCH(140)는 버스(150, 160)를 통하여 각각 프로세서(110)와 메모리(130)에 연결된다. 후술하는 바와 같이, GMCH(140)는 클럭 생성기(120)로부터 기준 클럭 신호를 수신하고 전압 조정기(voltage regulator; 170)로부터 조정된 전압을 수신한다. 도시되지는 않지만, 컴퓨팅 장치(100)는 하나 이상의 내부 배터리에 의하여 또는 접속선을 거쳐 전력 소켓으로부터 라우팅되는 교류 전류(AC) 전력에 의하여 전력을 공급받을 수 있다.
본 명세서에서, 프로세서(110)는 마이크로프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 마이크로제어기 등일 수 있다. GMCH(140)는 버스(150)를 통하여 프로세서(110)에 연결되어, 피처리 정보를 수신하는데, 처리된 정보는 메모리(130)에 저장되거나 컴퓨팅 장치(100)와 연관된 디스플레이 유닛(180)상에 디스플레이된다. 디스플레이 유닛(180)은 컴퓨팅 장치(100)의 통합 컴포넌트이거나 도시되는 바와 같이 컴퓨팅 장치(100)와 분리되어 외부에 있는 주변 장치일 수 있다.
클럭 생성기(120)는 컴퓨팅 장치(100) 내에 내부적으로 위치된다. 그러나, 클럭 생성기(120)는 컴퓨팅 장치(100)의 외부에 위치될 수도 있다. 클럭 생성기(120)는 프로세서(110)에 제1 클럭(HOST_CLK) 신호를 제공하고, GMCH(140)에 하나 이상의 클럭 신호를 제공한다. 예를 들어, HOST_CLK 신호(190) 및 제2 클럭(CLK2) 신호(195)가 GMCH(140)에 공급될 수 있으며, 여기서 CLK2 신호(195)는 HOST_CLK 신호(190)보다 낮은 주파수를 갖는다. 일 실시예에서, HOST_CLK(190) 및 CLK2 신호(195)는 각각 약 66MHz 및 48MHz의 주파수를 가질 수 있다.
Ⅱ. 그래픽 메모리 제어기 허브의 실시예
도 2를 참조하면, 코어 주파수 및/또는 전압 사용을 제어하기 위하여 클럭 생성기(120)와 함께 동작하는 그래픽 메모리 제어기 허브(GMCH; 140)의 제1 예시적 실시예가 도시되어 있다. 본 실시예에 있어서, GMCH(140)는 그래픽 코어(200), 하나 이상의 클럭 소스(210, 215)(예를 들어 위상 고정 루프(PLL) 회로), 선택적인 주파수 분주기 회로(frequency divider circuit; 220), 메모리 제어기(225), 디스플레이 포트(230) 및 작동 제어 회로(235)를 포함한다. 작동 제어 회로(235)는 상태 시퀀서(240), 작동 지시기 회로(245), 전압 조정 제어 회로(250), 코어 PLL 회로(255)를 포함한다.
도 2에 나타난 바와 같이, 그래픽 코어(200)는 입력 데이터에 대하여 그래픽계산을 수행하고, 이러한 데이터를 디스플레이 포트(230)를 통하여 도 1의 디스플레이 유닛(180)으로 출력한다. 그래픽 코어(200)는 도 1의 클럭 생성기(120)로부터 발생하는 기준 클럭 신호를 수신한다. 본 실시예에 있어서, GMCH(140)는 HOST_CLK 신호(190)를 수신하고 이 클럭 신호를 PLL 회로(210), 그리고 때로는 주파수 분주기 회로(220)로 라우팅한다. PLL 회로(210)는 HOST_CLK 신호(190)에 기초하여 메모리 클럭(MCLK) 신호(260)를 생성한다. HOST_CLK 신호(190)와 달리, MCLK 신호(260)는 프로그래밍 가능하다. MCLK 신호(260)는 도 1의 메모리(130)로의 액세스를 제어하는 메모리 제어기(225)에 의하여 사용된다.
주파수 분주기 회로(220)는, 사용시에, HOST_CLK 신호(190)의 주파수를 조절하고, 조절된 클럭 신호(265)를 코어 PLL 회로(255)로 전달한다. 코어 PLL 회로(255)는 입력되는 조절된 클럭 신호(265)에 기초하여 프로그래밍 가능한 렌더링 클럭(CRCLK) 신호(270)를 생성하고, 클러킹(clocking) 목적을 위해 CRCLK 신호(270)를 그래픽 코어(200)에 제공한다.
도 2를 참조하면, 본 발명의 본 실시예에 있어서, 작동 제어 회로(235)는 GMCH(140)에 의한 데이터 프로세싱 작동을 모니터링하는 작동 지시기 회로(245)를 포함한다. 이러한 모니터링은 그래픽 코어(200)가 작동중(데이터를 처리하는 중) 또는 유휴중인 때를 감지함으로써 달성될 수 있다. 예를 들어, 그래픽 코어(200)가 작동하여 데이터를 프로세싱하고 있으면, 작동 지시기 회로(245)에 의하여 감지되는 제어 신호(도시되지 않음)는 어서팅된다(예를 들어, 선택된 극성(polarity)에 대하여 로직 하이). 그렇지 않으면, 제어 신호는 디어서팅된다(선택된 극성에 대하여 로직 로우). 이러한 제어 신호를 주기적으로 샘플링함으로써, 그래픽 코어가 작동중인 퍼센티지에 관한 판정이 행해질 수 있다. 이러한 퍼센티지로부터, 상태 시퀀서(240)는 CRCLK 신호(270)의 주파수가 적절한지 또는 변경이 필요한지를 판정할 수 있다.
작동 제어 회로(235)가 클러킹 주파수 또는 그래픽 코어(200)로의 인가 전압 외에 컴퓨팅 장치의 다른 동작 행위도 제어하도록 구성될 수도 있다. 예로서, 클럭 속도 비율, 클럭 스로틀링 퍼센티지, 리프레시 레이트, 백라이트 밝기 등이 있다. 그러나, 설명의 편의상, 주파수 조절에 대하여 설명된다.
코어 PLL 회로(255)가 두 개의 상이한 클럭 주파수만을 지원하면, 상태 시퀀서(240)는 더 높은 주파수 클럭 신호("빠른" 주파수 신호라고 한다)를 선택하기 위하여 코어 PLL 회로(255)에 어서팅 제어 신호(241)를 제공한다. 그렇지 않으면, 더 낮은 주파수 클럭 신호("느린" 주파수 신호라고 한다)를 선택하기 위하여 코어 PLL 회로(255)에 디어서팅 제어 신호가 제공된다. 코어 PLL 회로(255)가 두 개가 넘는 상이한 클럭 주파수를 지원하면, 상태 시퀀서(240)는 복수의 클럭 주파수 중 하나에 대응하는 다수의 제어 신호를 그래픽 코어(200)에 제공하도록 구성될 수 있다. 예를 들어, 두 개의 제어 신호(00, 01, 10, 11)는 주파수가 다른 네 개의 상이한 클럭을 지원할 수 있다.
그래픽 코어(200)의 주파수가 변경되면, 상태 시퀀서(240)는 또한 제어 신호(242)를 전압 조정기 제어 회로(250)에 제공하며, 이 회로는 도 1의 전압 조정기(170)에 신호를 보내어 그래픽 코어(200)에 공급되는 전압을 조정하도록 한다. 이전압은 예컨대 약 1.5 볼트 내지 약 0.9 볼트 또는 그 미만의 범위에 있을 수 있다. 전압의 조절은 주파수의 변화에 대응할 수 있으며, 이러한 전압 조절은 조절된 클럭 신호를 언게이팅(ungating)하기 전에 발생할 수 있다.
도 3을 참조하면, 코어 주파수 및/또는 전압을 제어하도록 클럭 생성기(120)와 협조하여 동작하는 그래픽 메모리 제어기 허브(GMCH; 140)의 예시적인 실시예가 도시되어 있다. 이 실시예에서, GMCH(140)은 디스플레이 포트(230)에 인가되는 클럭 신호의 주파수를 조절하는 PLL 회로(215)를 제외한다. 그러나, GMCH(140)은 앞서 설명한 바처럼 그래픽 코어(200), PLL 회로(210), 선택적인 분주기 회로(220), 메모리 제어기(225), 디스플레이 포트(230) 및 작동 제어 회로(235)와 같은 다른 구성요소들을 포함한다.
III. 작동 제어 회로의 실시예
A. 작동 제어 회로의 예시적인 로직
도 4를 참조하면, 작동 제어 회로(235), 특히 도 2 및 도 3의 상태 시퀀서(240) 및 작동 지시기 회로(245)의 실시예가 도시되어 있다. 일반적으로, 이러한 회로는 이하 상술할 유휴(idle) 검출기(300), 유휴 모니터(310), 감산기(350), 선택 소자들(예컨대 멀티플렉서들)(360 내지 364), 로직 게이트들(370 내지 377) 및 주파수 스위칭 유닛(380)을 포함한다. 일반적으로, 주파수 스위칭 유닛(380)은 도 2의 상태 시퀀서(240)로서 동작하지만, 회로의 나머지 부분은 작동 지시기 회로(245)로서 동작한다.
본 발명의 일 실시예에서, 전력 소비와 성능 사이의 균형을 유지하기 위해서, 작동 제어 회로(235)는 도 1의 GMCH(140)에 의해 사용되는 CRCLK 신호(270)의 주파수 스위칭을 지원한다. 잠재적인 성능 손실을 없애기 위해, 유휴 모니터(310)는 도 1의 GMCH(140)의 렌더 엔진의 유휴도(idleness)를 측정하도록 구성된다.
특히, 본 발명의 일 실시예에서, CRCLK 신호(270)는 유휴도의 특정 임계치(Tf2s)가 충족되는 경우 "빠른" 주파수(Ff)로부터 "느린" 주파수(Fs, 여기서 Ff>Fs)로 스위칭되도록 구성된다. "F2S(fast-to-slow) 상태 임계치"라 불리는 이러한 임계치는 정적이거나, 또는 컴퓨팅 장치의 BIOS(Basic Input Output System)에 의한 기동 조건 설정 동안 또는 특정 메모리 위치 또는 레지스터의 컨텐츠를 액세스함으로써 프로그램 가능하게 설정될 수 있다. 이러한 임계치는 도 4에 도시된 것처럼 비트값(예컨대 32 비트값)으로서 표현될 수 있다.
CRCLK 신호는 또한 작동 레벨이 증가하여 "S2F(slow-to-fast) 상태 임계치"(T2sf)라 불리는 특정 작동 임계치를 초과하는 경우 느린 주파수로부터 빠른 주파수로 스위칭되도록 구성된다. 마찬가지로, S2F 상태 임계치는 비트값(예컨대 32비트값)으로 프리셋(preset)되거나 표현될 수 있다. CRCLK 신호 주파수만이 요구에 따라 동적으로 변경될 수 있으며, 모든 다른 클럭들은 부팅 후에 변경되지 않고 유지된다.
유휴도 측정 외에도, 다른 주파수 스위칭 이벤트들이 소프트웨어 제어를 통해 트리거될 수 있다. 예컨대, AC 전원의 중단(예컨대 전원 소켓으로부터 AC 플러그가 제거됨으로써 접속선의 접속이 끊김)이 검출될 수 있고, 배터리 수명을 길게하기 위해 소프트웨어 루틴으로 하여금 CRCLK 신호가 더 느린 주파수 세팅으로 전환되도록 할 수 있다.
동일한 부하 하에서 불필요한 스위칭의 전환이 이루어지는 것을 감소시키기 위해, 히스테리시스(hysteresis)가 제공될 수 있다. 이를 달성할 수 있는 한 가지 방식은 고-저(high-to-low) 주파수 전이를 개시하는 데에 필요한 분주도(busyness)의 레벨이 저-고(low-to-high) 주파수 전이를 개시하는 데에 필요한 분주도의 레벨보다 실질적으로 낮게끔 보장하는 것이다. 주파수, 시스템 전력 및 히스테리시스 사이의 관계는 식 (1)과 같이 주어진다.
Tf2s< Is- ((If- Tf2s) * Ff* Is) / (If* Fs) …… (1)
(Tf2s는 F2S 상태 임계치; Ts2f는 S2F 상태 임계치; Is는 느린 상태 간격, If는 빠른 상태 간격; Fs는 느린 주파수; Ff는 빠른 주파수)
도 4에서 도시한 바와 같이, 작동 제어 회로(235)의 동작은 부분적으로 다양한 제어 상태 신호들에 기초한다. 이러한 제어 상태 신호들은 GMCH의 소망 상태(DSTATE), GMCH의 현재 상태(CSTATE), 유휴 모니터의 하드웨어에 기초한 변경 주파수 요청(HW_CH_FREQ), 및/또는 하드웨어, 소프트웨어 또는 열 조건에 기초한 변경 주파수 요청(CH_FREQ_REQ)을 포함하지만, 이에 한정되는 것은 아니다.
더욱 구체적으로, "DSTATE"는 전자 장치에 대해 소망하는(desired) 주파수 상태 레벨을 의미하는 것이다. DSTATE의 값은 유휴 상태 페이지(ISP; Idle State Page) 레지스터(390)(예컨대 ISP[1])의 비트로서 저장될 수 있으며, 이는 도 5a에도시된 GMCH의 메모리(도시되지 않음)에 위치할 수 있다. ISP 레지스터는 소프트웨어 및 하드웨어에 작동 및 온도 정보를 제공하여 주파수 및 전압 스로틀링에 대한 결정을 내리도록 한다. 본 명세서에서, 본 발명의 이러한 실시예의 경우, DSTATE는 CRCLK 신호를 "빠른" 주파수 레벨로 설정 및 유지하도록 어서팅(DSTATE=로직 "하이")된다. DSTATE는 CRCLK 신호를 "느린" 주파수 레벨로 설정 및 유지하도록 디어서팅(DSTATE=로직 "로우")된다. DSTATE는 하드웨어 또는 소프트웨어에 의해 결정될 수 있다.
하드웨어에 의해 결정되는 경우, 도 5b의 유휴 제어 및 상태(Idle Control and Status; ICS) 레지스터(395)의 하드웨어 인에이블 전이 비트(Hardware Enable Transition bit)의 세팅에 응답하여(EN_HW_TRAN=ICS[30]=로직 "하이"), 감산기(350)로부터의 출력과 연관된 최상위 비트(MSB)는 DSTATE 값과 동일하다. 그렇지 않고 소프트웨어에 의해 결정되는 경우, DSTATE는 일반적으로 SWRST2S(Software Reset-to-Slow) 신호(예컨대 ICS[28])의 반전된 값과 동등하다.
본 발명의 일 실시예에서, "CSTATE"는 CRCLK 신호의 현재 상태를 의미한다. CSTATE의 값은 ISP 레지스터(390)(예컨대 ISP[0])의 비트로서 저장될 수 있다. CSTATE는 "빠른" 주파수로 CRCLK 신호를 선택하기 위해 어서팅된다. CSTATE는 "느린" 주파수를 선택하기 위해 디어서팅된다. 모든 도메인 작동이 정지된 후, CRCLK의 주파수는 DSTATE 값을 CSTATE 값으로 할당함으로써 스위칭된다(예컨대 빠른 주파수에서 느린 주파수로).
"HW_CH_FREQ"는 어서팅되면, 하드웨어 판정된 변경 주파수 이벤트(hardwaredetermined change frequency event)("빠름"에서 "느림"으로 또는 "느림"에서 "빠름"으로)를 알린다. HW_CH_FREQ는 유휴 모니터 동작에 기초한다. 예를 들면, CRCLK 신호가 빠른 주파수(CSTATE = 로직 "하이")에서 동작하고 있고 샘플링된 유휴 카운트가 F2S 상태 임계치(Tf2s) 보다 크면, HW_CH_FREQ는 어서팅된다(HW_CH_FREQ = 로직 "하이"). CRCLK가 낮은 주파수(CSTATE = 로직 "로우")에서 동작하고 있고 샘플링된 유휴 카운트가 S2F 상태 임계치(Ts2f) 보다 작으면, HW_CH_FREQ는 어서팅된다.
일반적으로, "CH_FREQ_REQ"는 하드웨어 또는 소프트웨어에 의해 촉발된 이벤트(hardware or software prompted events) 및 열 판독값(thermal readings)에 기초한다. CH_FREQ_REQ가 어서팅될 때, 그것은 변경 주파수 요청(빠름으로부터 느림으로 또는 느림으로부터 빠름일 수 있음)이 발생했다는 것을 주파수 스위칭 유닛(380)에 알린다. CH_FREQ_REQ 값은 두 개의 기준에 응답하여 결정된다. 제1 기준은 하드웨어 또는 소프트웨어 요청이 서비스될지를 판정한다. 이러한 판정은 EN_HW_TRAN 값에 기초한다(EN_HW_TRAN는, 하드웨어 결정된 변경 주파수 요청이 서비스될 때, 어서팅된다).
제2 기준은, ISP 레지스터(390)(예를 들면, ISP[9:2])에 저장될 수 있는, GMCH의 감지된 온도(TRR[7:0])에 기초하여 변화 주파수 요청이 필요한지를 판정한다. 본 발명의 실시예에 있어서, THERMALHOT 파라미터는, 감지된 온도가 주어진 임계치를 초과하면, 로직 "1"로 설정된다. 그러나, 감지된 온도가 주어진 임계치를 초과할지라도, CRCLK 신호는 여전히 "빠른" 주파수로부터 변하는 것이 허용된다. 그렇지 않으면, CSTATE가 디어서팅되는 경우에, SWITCH_TO_SLOW_IF_HOT(예를 들면, IC[29]) 및 THERMALHOT 파라미터가 어서팅되고, 이는 CH_FREQ_REQ가 주파수 레벨에 변화가 없다는 것을 알리면서, 디어서팅되는 것을 허용한다. 요약하면, 제2 기준은, GMCH의 감지된 온도가 설정 임계치를 초과하는 경우에, 느림에서 빠름으로의 주파수 스위치 전이를 방지하기 위하여 사용된다.
도 4에 도시된 바와 같이, 유휴 검출기(300)는, 특정 유닛이 유휴 상태이면, 활성의 글로벌 유휴(Global Idle; GIDLE) 신호(309)를 생성한다. 이 실시예에 있어서, 이들 유닛은, MPEG 압축/압축해제 유닛(유휴이면 MPEG_DONE(302)), 3차원 렌더링 유닛(유휴이면 3D_DONE(304)), 2차원 렌더링 유닛 또는 블리터(blitter)(유휴이면 BLT_DONE(306)), 및/또는 하드웨어 비닝 유닛(hardware binning unit)(유휴이면 HB_DONE(308)) 중 하나 이상을 포함할 수 있다. "DONE" 신호들(302, 304, 306 및/또는 308) 각각은, 유연한 작동 카운팅 폴리시를 테스트 및 제공하기 위하여 ICS 레지스터(395)의 레지스터에 의하여 마스크 또는 언마스크될 수 있다.
예를 들면, 도 6에 도시된 바와 같이, ICS 레지스터(395)(ICS[11:8])의 4개의 비트(400-403)는 각각 DONE 신호(302, 304, 306 및 308)에 대응한다. 그러므로, ICS[11]의 설정은, MPEG_DONE 신호(302)가 마스크되도록(예를 들면, 어서팅된 로직 "하이" 상태에 위치됨), 제1 로직 게이트(410)(예를 들면, OR 게이트)로부터의 작동 신호가 출력되도록 한다. 이와 유사하게, ICS[10:8]의 설정은, 3D_DONE, BLT_DONE 및 HB_DONE 신호(304, 306, 308)가 또한 마스크 되도록, 다른 로직 게이트(420, 430 및 440)로부터의 작동 신호를 유발한다.
도 4를 다시 참조하면, 유휴 모니터(310)는 프리셋 시간 인터벌 내의 렌더 엔진의 유휴를 판정한다. 이들 유휴 측정에 기초하여, 유휴 모니터(310)는 DSTATE 신호 및 CH_FREQ_REQ 신호를 생성할 것이다. 또한, 소프트웨어는 DSTATE 및 CH_FREQ_REQ 신호를 설정할 수 있다. GILDE(309)은 CRCLK(270)의 매 사이클마다 샘플링되고 인터벌 카운터(340) 또한 CRCLK 사이클에서 카운트하기 때문에, 유휴 모니터(310)는 CRCLK 도메인에서 실행하고 있다.
유휴 모니터(310)는 유휴 카운터(320) 및 인터벌 카운터(340)를 포함한다. 유휴 카운터(320)는 복수의 입력(321-323)을 포함한다. 본 발명의 이 실시예에 있어서, 클리어(CLR) 입력(321)은, 기동(power-up) 시에 리셋 신호(IMrst) 신호를 수신하면, 유휴 카운터(320)가 리셋되도록 한다. 클록(CLK) 입력(323)은 유휴 카운터(320)가 CRCLK 신호(270)에 의하여 클러킹되도록 한다. 인네이블(EN) 입력(322)은, 어서팅된 신호를 수신하면, 유휴 카운터(320)가 카운트를 시작하도록 한다. 도시된 바와 같이, 인에이블 입력(322)은 제1 로직 게이트(370)(예를 들면, AND 게이트)에 연결되고, GIDLE 신호(309)가 어서팅되고 조합 로직 유닛(combination logic unit; 330)으로부터의 출력이 어서팅될 때, 카운팅 프로세스를 개시시킨다.
도시된 바와 같이, 조합 로직 유닛(330)은, 소프트웨어로부터 ICS 레지스터(ICS[31])의 유휴 모니터 인에이블 비트의 값을 수신하기 위한 제1 입력, 및 일군의 로직 게이트들(372 및 373)(예를 들면, AND 게이트(372) 및 인버터(373))에 연결된 제2 입력을 갖는 제2 로직 게이트(371)(예를 들면, AND 게이트 기능)를 포함한다. 조합 로직 유닛(330)은, (i) 인터벌 카운터(340)가 카운트-다운 시퀀스 동안 0을 통과하지 않는 것(인터벌 카운터(340)의 최상위 비트 "IntMSG"는 "0"으로 디어서팅된다)과, (ii) 시작 카운트(START_CNT)가 카운트 시퀀스를 시작하도록 어서팅된 것에 응답하여 작동 신호를 출력한다.
유휴 카운터(320)는 유휴 카운트를 ISP 레지스터(390)로 전달하기 위한 출력(324)을 포함한다. 이 실시예에 있어서, 출력은 ISP 레지스터(390)의 다중 비트(예를 들면, ISP[30:10]) 내에 저장된 이진값이다.
또한, 인터벌 카운터(340)는 복수의 입력(341-344)을 포함한다. 이 실시예에 있어서, 인터벌 카운터(340)는, 클록(CLK) 입력(341)에 제공되는 CRCLK 신호에 의하여 클러킹된다. 로드(LOAD) 입력(342)은, 리셋 시에 인터벌 카운터(340)가 데이터-인(Data-In; DIN) 입력(343)을 통하여 두 개의 값 중 하나로 로딩되도록 한다. 하나의 값, 즉 빠른 상태 인터벌(If)(345) 또는 느린 상태 인터벌(Is)(346)은 CSTATE(347), 즉 GMCH의 CRCLK 신호가 실행하고 있는 현재 상태의 값에 기초하여 선택 소자(360)에 의하여 출력된다. 어서팅된 신호를 수신하면, 인에이블(EN) 입력(344)은 인터벌 카운터(340)가 카운트를 시작하도록 한다. 도시된 바와 같이, EN 입력(344)은 조합 로직 유닛(330)에 연결된다.
일단 인터벌 카운터(340)가 0을 통과하여 카운트하면, 출력(예를 들면, 최상위 비트 "Int MSB"의 정수 값)(348)은 어서팅된다. 이로 인하여, 이 실시예에 있어서 로직 게이트(371)로부터의 출력이 디어서팅되기 때문에, 유휴 카운터(320) 및인터벌 카운터(340) 양자 모두는 멈추게 된다. 그 후, 유휴 카운터(320)에 의하여 생성된 유휴 카운트는 CSTATE(347)의 값과 함께 샘플링된다. 유휴 카운트는, CSTATE(347)에 의하여 제어되는 선택 소자(361)에 의하여 출력되는, S2F 상태 임계치(Ts2f)(351) 또는 F2S 상태 임계치(Tf2s)(352)와 비교된다.
샘플링된 유휴 카운트(sampled idle count)가 선택된 상태 임계치를 초과하거나 혹은 이와 동일하고, CSTATE(347)가 어서팅되면(asserted), 출력 신호(MSB; 353)는 디어서팅되고(deasserted), 논리 게이트(374)(예를 들면, 배타적 논리합 "XOR" 게이트)로 라우팅된다. 논리 게이트(374)의 출력은 식 (2)에 나타난 바와 같이, HW_CH_FREQ 신호(365)와 등가이다.
HW_CH_FREQ = CSTATECMSB …… (2)
주파수 상태가 GMCH의 하드웨어에 의하여 판정되면, EN_HW_TRAN(ICS[30])는, 감산기(350)로부터의 MSB(353)가 선택 소자(362)로부터 출력되어 DSTATE(391)의 값과 동일하도록, 어서팅된다. HW_CH_FREQ 신호(365)는 선택 소자(363)를 통하여 선택 소자(364)로 라우팅된다.
ISP 레지스터(예를 들면, ISP[9:2])에 열 값으로서 비트 단위로 저장된, GMCH의 감지된 온도가 특정 임계치를 초과하지 않으면, CRCLK 신호가 현재 "빠른" 주파수로 동작하고 있는 경우에, CH_FREQ_REQ 신호(381)가 어서팅되어, 주파수 스위칭 유닛(380)에 인가된다. 반대로, CH_FREQ_REQ 신호(381)는, CRCLK 신호가 현재 "느린" 주파수로 동작하고 있는 경우에, 디어서팅된다.
감지된 온도가 주어진 임계치를 초과하면, THERMALHOT 신호가 어서팅되고 선택 소자(364)의 제어 신호가 어서팅된다. 그러므로, CRCLK 신호의 현재 주파수가 "느린" 주파수 레벨(CSTATE = 로직 "low")에 있으면, CH_FREQ_REQ 신호가 디어서팅된다. 하지만, CRCLK 신호의 현재 주파수가 "빠른" 주파수 레벨(CSTATE = 로직 "High")에 있으면, CRCLK 주파수가 감소되도록 CH_FREQ_REQ 신호(381)가 어서팅된다.
주파수 상태가 소프트웨어에 의하여 판정되면, EN_HW_TRAN(예를 들면, ICS[30])은, 논리 게이트(375)에 의하여 유발되는 SWRST2S의 반대 상태(opposite state)가 DSTATE(349)의 값을 설정하도록, 디어서팅된다. 그 후, 주파수 스위칭 유닛(380)은, 논리 게이트(376)에 의하여 제공되는 바와 같이 SWRST2S와 CSTATE의 XOR 결과에 의하여 효과적으로 설정된다. 동일한 온도 감지 오버라이드(override)가 논리 게이트(377)에 의하여 제공된다.
B. 작동 제어 회로(Activity Control Circuit)의 예시적인 동작
도 7a 및 7b를 참조하면, 도 4의 작동 제어 회로의 "빠른" 주파수로부터 "느린" 주파수로의 일반적인 주파수 스위칭 동작을 개략적으로 설명하는 흐름도의 예시적인 실시예가 도시된다. 이러한 동작 동안, 유휴 및 인터벌 카운터(idle and interval counters) 양자 모두는 소프트웨어에 의하여 인에이블되는 것에 응답하여 초기화된다(블록 "500"). CSTATE가 어서팅되어 있으므로, 제1 프리셋 시간 인터벌(preset time interval)은 기동(power-up) 시에 인터벌 카운터로 로딩된다(블록 "505"). 제1 프리셋 시간 인터벌은 이 특정 예시적인 실시예를 위한 빠른 상태 인터벌과 등가이다. 또한, F2S 임계치가 감산기로 로딩된다(블록 "510")
START_CNT 신호가 어서팅되면, 유휴 및 인터벌 카운터 양자 모두는 카운트를 시작한다(블록 "515" 및 "520"). 인터벌 카운터가 제1 프리셋 시간 인터벌로부터 카운트 다운하는 동안에, GIDLE은 CRCLK 신호의 매 사이클마다 어서팅된다. 일단 인터벌 카운터가 0을 지나서 카운트하면, 제어 신호가 어서팅되어 양 카운터가 모두 멈추도록 한다(블록 "525" 및 "530"). 유휴 카운터 값, CSTATE, DSTATE, 및 GMCH의 현재 온도를 식별하는 열 값(thermal value)이 샘플링된다(블록 "535").
DSTATE가 하드웨어에 의하여 판정되면(예를 들면, EN_HW_TRAN이 어서팅되면), HW_CH_FREQ 신호로 라우팅되는 값은 CSTATEDSTATE와 등가이다(블록 "540" 및 "545"). 그러므로, DSTATE가 CSTATE와 다르고 GMCH의 감지된 온도가 특정 임계치보다 작으면, GMCH의 CRCLK 신호에 대해 사용자에게 명백한 주파수 스위칭 동작이 이루어진다(블록 "550" 및 "560"). 하지만, 감지된 온도가 특정 임계치보다 더 크면, 주파수 스위칭 동작은, 소망하는 전이(transition)가 더 낮은 주파수로인 경우에, 여전히 발생할 것이다(블록 "550" 및 "555"). 소망하는 전이가 더 높은 주파수로인 경우에는, 아무런 주파수 스위칭 동작이 발생하지 않을 것이다(블록 "560" 및 "565").
DSTATE가 소프트웨어에 의하여 판정되면(예를 들면, EN_HW_TRAN이 디어서팅되면), 소프트웨어 변화 주파수 신호(SWCHFREQ)의 값은 블록 "570"에 도시된 바와 같이 식 (3)과 등가이다.
SWCHFREQ = [CSTATESWRST2S]# …… (3),
여기서 "#"는 XOR 결과의 반전(inversion)을 나타낸다.
그러므로, GMCH의 감지된 온도가 특정 임계치보다 작으면, GMCH의 CRCLK 신호에 대해 사용자에게 명백한 주파수 스위칭 동작이 이루어진다(블록 "555" 및 "575"). 하지만, 감지된 온도가 특정 임계치보다 크면, 주파수 스위칭 동작은, 소망하는 전이가 더 낮은 주파수로이고 SWCHFREQ가 어서팅된 경우에, 여전히 발생할 것이다(블록 "580"). 소망하는 전이가 더 높은 주파수로인 경우에는, 아무런 주파수 스위칭 동작이 발생하지 않을 것이다(블록 "565").
Ⅳ. 주파수 스위칭 유닛의 예시적의 동작
도 8을 참조하면, 주파수 스위칭 유닛의 동작을 설명하는 흐름도의 예시적인 실시예가 도시된다. 주파수 스위칭 유닛은 CSTATE 및 DSTATE의 값뿐만 아니라 CH_FREQ_REQ 신호를 모니터링한다(블록 "600"). 일단 CH_FREQ_REQ 신호가 어서팅되고, DSTATE가 CSTATE와 동일하지 않으면, 주파수 스위칭 유닛은 인에이블된다(블록 "605" 및 "610"). CH_FREQ_REQ 신호가 어서팅되었지만 DSTATE가 CSTATE와 동일하면, 주파수 스위칭 동작이 최근에 발생하였을 것이므로 요청(request)은 무시된다.
주파수 스위칭 유닛이 인에이블된 후에, 특정 하드웨어의 동작(예를 들면, 명령어 구문분석기(command parser) 등)은, 렌더링 하드웨어가 계류 중인 명령어의 프로세싱이 완료되기까지 일시적으로 동작을 계속하면, 렌더 하드웨어(render hardware)가 유휴될 수 있도록 하기 위해 정지될 수 있다(블록 "615" 및 "620"). 그 후에, CRCLK 신호가 게이팅된다(gated).
CRCLK 신호가 게이팅된 후에, 주파수 스위칭 유닛은 DSTATE의 값을 CSTATE에 할당함으로써 CSTATE의 값을 갱신한다(블록 "630"). 그 후, CRCLK 신호가 갱신되고 특정 하드웨어 및 렌더 엔진이 동작을 계속한다(블록 "635" 및 640"). 이로 인하여, 주파수 스위칭 유닛은, 초기화될 때 다음 주파수 변화 요청(Change Frequency request)을 서비스할 수 있다. 물론, CRCLK 신호를 게이팅하는 대신에, 다른 수단(예를 들면, 대기 상태)을 통하여, 한 클럭 주파수로부터 다른 클럭 주파수로 매끄럽게 전이할 수 있다. CRCLK 신호가 게이팅되지 않으면, 렌더링은 주파수 스위칭 동안 여전히 가능한데, 이는 계류 중인 명령어가 완료되는 것을 기다릴 필요가 없기 때문이다.
도 9를 참조하면, 디스플레이에 의하여 이용되는 전압 및/또는 제어 주파수를 제어하기 위하여 클럭 생성기와 협동하여 동작하는 GMCH의 제3 예시적인 실시예가 도시된다. 이 실시예에 있어서는, GMCH(140)는 동기화기 로직(710)과 협력하여 동작하는 단일 PLL 회로(700)를 사용하고, 이 동기화기 로직(710)은 예를 들면 그래픽 코어(200) 및 메모리 제어기(225)에 상이한 주파수의 클럭 신호를 공급한다. 도시된 바와 같이, 복수의 클럭 주파수 레벨(CLKs)이 동기화기 로직(710)에 의하여 지원된다.
동기화기 로직(710)으로 인하여, PLL 회로 리로크(re-locks)의 필요없이 그리고 클럭 라인 상의 클럭 오동작 없이 주파수 스위칭이 일어날 수 있다. 이러한 주파수 스위칭은, 빠른 주파수(Ff)를 갖는 클럭 신호(CHCLK)로부터 메모리 클럭 주파수(MCLK)로, 그리고 메모리 클럭 주파수(MCLK)로부터 느린 주파수(FS)를 갖는 클럭 신호(CLCLK)로 발생한다. 일반적으로, 이것은 지속적인 샘플링 스킴(sampling scheme)을 제공하여 교차 클럭된 로직(cross clocked logic) 간의 데이터의 결정적 전달(deterministic transfer)을 가능하게 한다.
보다 구체적으로는, 도 10에 도시된 바와 같이, 동기화기 로직(710)의 예시적인 실시예는 동기화기 제어 로직(800) 및 동기 동기화기(synchronous synchronizer)(850)를 포함한다. 동기화기 제어 로직(800)은 복수의 샘플링 회로(811, 812) 및 복수의 선택 소자(820)(예를 들면, 멀티플렉서)를 포함한다. 선택 소자(820)는 샘플링 회로(811, 812)에 교차-접속된다. 동기화기(850)는 복수의 플립플롭(861, 862) 및 복수의 선택 소자(870 내지 872)를 포함한다.
각각의 샘플링 회로는 두 개의 입력 신호(incoming signals)의 에지를 샘플링하여, 전송(transmit; XMIT) 신호(840) 및 수신(receive; RCV) 신호(841)를 생성한다. 이것은, XMIT 신호(840)의 어서팅된 부분을 계산하기 위하여 CHCLK 신호(830) 및 지연(lagging) MCLK 신호(831) 양자 모두의 상승 에지(rising edges)를 샘플링하는 제1 샘플링 회로에 의하여, 이루어질 수 있다. CHCLK 및 MCLK 신호(830, 831)의 하강 에지의 샘플링은 RCV 신호(841)의 디어서팅된 부분을 계산하기 위하여 사용될 수 있다. 이와 유사하게, 제2 샘플링 회로(812)는 MCLK 신호(831) 및 지연 CLCLK 신호(832) 양자 모두의 에지 샘플링을 수행한다.
디어서팅된 CSTATE 값에 응답하여, 느린 주파수(FS)로부터, MCLK와 연관된중간 주파수(intermediary frequency)(Fm, 여기서 Fm> Fs)로의 전이가 발생한다. 본 발명의 이러한 실시예에 있어서, 동기화기(850)의 플립플롭(861 및 862)에 의하여 데이터의 래칭(latching)을 제어하는 동기화기 제어 로직(800) 및 CLCLK(832)에 따라 그래픽스 코어(200)를 클러킹함으로써, 전이가 이루어질 수 있다. 제1 플립플롭(861)은 CLCLK(832)에 따라 클러킹되고, 제2 플립플롭(862)은 MCLK(831)에 의하여 클러킹된다. 또한, XMIT 및 RCV 신호(840 및 841) 양자 모두는 그래픽 코어(200)로부터 선택 소자(870 내지 871)를 통해 메모리 제어기(225)로의 데이터 전파(propagation)를 제어한다.
빠른 주파수(Ff)로부터 메모리 제어기 주파수(Fm, 여기서 Ff> Fm)로의 전이에 있어서, 전이는, CHCLK에 따라 제1 플립플롭(861)을, 그리고 MCLK(831)에 따라 제2 플립플롭(862)을 클러킹함으로써 이루어질 수 있다. 다시, XMIT 및 RCV 제어 신호(840 및 841)는 그래픽 코어(200)로부터 선택 소자(870 및 871)를 통해 메모리 제어기(225)로의 데이터 전파를 제어한다. 바이패스 신호(bypass signal; 880)는 선택 소자(872)를 제어하여 데이터가 제1 플립플롭(861)을 바이패스하도록 한다.
GMCH에서는 복수의 클럭 도메인이 사용된다. 클럭 도메인 주파수는 인터페이스마다 다르고, 이들 주파수들간의 바람직한 비율은 없다. 서로 다른 주파수 도메인에서 실행되는 로직간의 결정적인 변환을 가능하게 하기 위하여, 동기화기 로직(710)이 개발되었다. 멀티플렉서는 플립플롭의 앞단에 위치한다. 동기화기 제어 로직은 클럭 에지(clock edges)를 샘플링하고, CLCLK와 MCLK, 또는 CLCLK와MCLK(셋업 시간 제외) 간의 타이밍 마진에 기초하여 XMIT 및 RCV 신호를 생성한다. 그 후, 동기화기(810)는 이 제어 신호들을 사용한다. 전송이 허용되면, XMIT 신호가 어서팅되고 데이터는 멀티플렉서를 통하여 제2 플립플롭으로 전달된다. 동일한 과정이 수신측에서도 행해진다.
도 11을 참고하면, GMCH 주파수 및 전압 스로틀링(throttling)을 제어하는 컴퓨팅 장치의 기계 판독 가능 매체(900)에 저장된 소프트웨어 모듈의 예시적인 실시예가 도시되어 있다. 복수의 소프트웨어 모듈(905)은 다양한 이벤트에 기초하여 주파수 또는 전압 레벨을 변경하도록 구성될 수 있다.
예를 들어, 제1 소프트웨어 모듈(910)은 동작(예를 들어 렌더 엔진의 유휴도)에 기초하여 그래픽 코어에 인가되는 렌더링 클럭(CRCLK)의 주파수 및 전압을 증가시키거나 감소시킬 수 있다. 제2 소프트웨어 모듈(915)은 배터리 전력 레벨 및 컴퓨팅 장치가 AC 전력 출력단(outlet)에 연결되었는지 여부에 따라 주파수 및 전압을 변경할 수 있다. 렌더링 클럭의 주파수는 컴퓨팅 장치의 하나 이상의 배터리에 대하여 측정된 감소된 전력 레벨에 응답하여 낮추어질 수 있다. 제3 소프트웨어 모듈(920)은 컴퓨팅 장치의 로직을 둘러싼 케이싱(casing) 내에서 측정된, 또는 컴퓨팅 장치의 어떤 하드웨어 컴포넌트에서 측정된 열 온도에 기초하여 주파수 및 전압을 변경할 수 있다. 렌더링 클럭의 주파수는 사용자 또는 제조자에 의하여 설정된 소정의 열 제한을 초과하는 열이 판독된 경우 감소될 수 있다.
도 12에는 GMCH에 인가되는 주파수 및 전압의 스로틀링을 통하여 전력 보존(conservation)을 위해 사용되는 소프트웨어 모듈(905)의 일반적인 예시적인 동작이 도시되어 있다. 전력 보존에 관하여 선택된 폴리시(950)에 기초하여, 이벤트(955)(예를 들어, 동작/유휴도, 전력 또는 열 값 등)에 응답하여 소프트웨어(905)가 GMCH(140)에 인가되는 주파수 및 전압을 변경하도록 구성될 수 있다. 변경은 "제한(constraints, 960)"(예를 들어 미리 선택된 임계 파라미터) 및 "요구(demand, 965)"에 기초한다.
여기서, 본 발명의 일 실시예에서는 컴퓨팅 장치의 동작적인 행동(operational behavior)을 제어하기 위한 폴리시로서 2개의 일반적인 유형이 있는데, 이는 사전적(proactive)과 사후적(reactive) 폴리시이다. 사전적 폴리시는 다른 것을 지배하는 하나의 폴리시를 가정한다. 예를 들어, 사용자가 성능보다 최대 배터리 수명을 선호하는 것으로 나타나면 소프트웨어는 GMCH로부터의 신호를 수신하지 않고 전력을 사전적으로 감소시킬 수 있다(예를 들어 렌더링 클럭의 주파수를 감소시킴). 사후적 폴리시는 사용자 선호도와 균형을 맞추고 AC 커넥터의 제거와 같은 이벤트에 대한 응답을 포함한다.
이러한 폴리시는 도 13 및 14에 도시된 컴퓨팅 장치에 의하여 생성된 그래픽 사용자 인터페이스(1000)를 통하여 사용자에 의해 설정될 수 있다. 도 13에 도시한 바와 같이, 사용자는 컴퓨팅 장치가 배터리로 동작하는지 AC 전력을 받고 있는지에 따라 서로 다른 폴리시(1010)를 선택할 수 있다. 이러한 폴리시는 예를 들어, 최대 배터리 수명(1020), 최대 성능(1030) 또는 최대 배터리 수명 또는 성능을 갖는 적응적 폴리시(1040)를 포함할 수 있다. 도 14에 도시한 바와 같이, 그래픽 사용자 인터페이스(1050)는 "사후적" 폴리시 조건(1060) 및/또는 "사전적" 폴리시조건(1070)에 따라 구성될 수 있다.
본 발명의 일 실시예에 있어서, 적응적 폴리시는 프로세싱되는 요구 및 요구의 경향에 기초하여 동작에 있어서 전이가 행해지도록 설계된다. "요구"는 경향(예를 들어 하나 이상의 이전 데이터 샘플에 따른 이벤트와 관련된 현재 데이터 샘플의 조합) 또는 이력 평균뿐만 아니라 이벤트의 즉각적인 측정(예를 들어 유휴도, 요구, 온도)에 기초하여 계산될 수 있다. 또한, 적응적 폴리시는 전이를 행하는 비용의 계산(예를 들어, 1와트의 전력으로 얻어지는 초당 메가비트의 수)을 포함할 수 있다.
본 발명의 몇몇 예시적인 실시예에 대하여 설명하였지만, 이 설명은 본 발명을 제한하는 것으로 해석되는 것은 아니다. 본 발명의 다른 실시예뿐만 아니라 예시적인 실시예의 다양한 변형은 첨부된 특허청구범위의 사상 및 범위 내에서 본 발명에 포함되는 것이다.

Claims (29)

  1. 그래픽 코어(graphics core); 및
    상기 그래픽 코어로 공급되는 렌더 클럭 신호(render clock signal)의 주파수를 변경하기 위한 회로로서, 상기 그래픽 코어의 유휴도(idleness)를 모니터링하고, 상기 유휴도가 정해진 시간 퍼센티지를 초과하면 상기 렌더 클럭 신호의 주파수 레벨을 감소시키는 회로
    를 포함하는 그래픽 메모리 제어기 허브(graphics memory controller hub).
  2. 제1항에 있어서, 상기 회로는,
    상기 그래픽 코어에 연결되고, 상기 렌더 클럭 신호를 제공하는 코어 위상 고정 루프(core phase locked loop(PLL)) 회로; 및
    상기 코어 PLL 회로의 출력을 제어하는 작동 제어 회로(activity control circuit)
    를 포함하는 그래픽 메모리 제어기 허브.
  3. 제2항에 있어서,
    상기 렌더 클럭 신호를 생성하기 위하여 사용되는 클럭 신호를 상기 코어 PLL 회로에 제공하는 주파수 분주기 회로(frequency divider circuit)
    를 더 포함하는 그래픽 메모리 제어기 허브.
  4. 제3항에 있어서,
    상기 그래픽 코어로부터의 출력을 수신하는 디스플레이 포트; 및
    상기 디스플레이 포트로 상기 클럭 신호를 제공하는 위상 고정 루프 회로
    를 더 포함하는 그래픽 메모리 제어기 허브.
  5. 제2항에 있어서, 상기 작동 제어 회로는,
    상기 그래픽 코어에 의한 데이터 프로세싱 작동을 모니터링함으로써 상기 그래픽 코어의 유휴도를 판정하는 작동 지시기 회로(activity indicator circuit); 및
    상기 작동 지시기 회로 및 상기 코어 PLL 회로에 연결되고, 상기 작동 지시기 회로에 의한 판정에 응답하여 상기 렌더 클럭 신호의 상기 주파수 레벨을 조절하는 신호를 발생시키는 상태 시퀀서(state sequencer)
    를 더 포함하는 그래픽 메모리 제어기 허브.
  6. 제5항에 있어서, 상기 작동 지시기 회로는,
    압축(compression)/복원(decompression) 유닛(MPEG_DONE), 3차원 렌더링 유닛(3D_DONE), 2차원 렌더링 유닛(BLT_DONE) 및 하드웨어 비닝(binning) 유닛 중 적어도 2개를 포함하는 복수의 유닛들 각각이 유휴상태일 때 활성 글로벌 유휴(active Global Idle(GIDLE)) 신호를 생성하는 유휴 검출기(idle detector)를 포함하는 그래픽 메모리 제어기 허브.
  7. 제6항에 있어서, 상기 작동 지시기 회로는,
    상기 복수의 유닛의 각각에 유일하게 대응되는 적어도 하나의 비트를 가지며, 상기 복수의 유닛 중 선택된 유닛과 관련된 비트의 셋팅이 마스크로서 동작하여 상기 선택된 유닛이 상기 유휴 검출기에게 유휴상태로 인식되는 그래픽 메모리 제어기 허브.
  8. 제2항에 있어서,
    상기 코어 PLL 회로에 공급하는 적어도 하나의 클럭 신호를 생성하는 클럭 생성기- 상기 렌더 클럭 신호는 상기 클럭 신호에 기초함 -를 더 포함하는 그래픽 메모리 제어기 허브.
  9. 제5항에 있어서, 상기 작동 제어 회로는,
    상기 작동 지시기 회로에 연결되고, 상기 그래픽 코어에 공급되는 전압을 조절하기 위한 전압 조정기(voltage regulator)를 더 포함하는 그래픽 메모리 제어기 허브.
  10. 그래픽 메모리 제어기 허브의 클러킹 주파수(clocking frequency)를 내부적으로 제어하기 위한 회로로서,
    상기 그래픽 메모리 제어기 허브의 유휴도를 검사하기 전에 렌더 클럭 신호의 사이클의 수를 설정하는 제1 카운터;
    상기 그래픽 메모리 제어기 허브가 유휴상태일 때 상기 렌더 클럭 신호의 각 사이클마다 증가되는 제2 카운터;
    상기 제2 카운터의 카운트 값과 소정의 임계치를 비교하는 감산기; 및
    상기 카운트 값이 상기 소정의 임계치보다 크면 상기 렌더 클럭 신호의 주파수를 조절하는 주파수 스위칭 유닛
    을 포함하는 회로.
  11. 제10항에 있어서,
    상기 제1 카운터는 다운 카운터(down counter)인 회로.
  12. 제11항에 있어서,
    상기 제2 카운터는 업 카운터(up counter)인 회로.
  13. 제10항에 있어서,
    상기 제2 카운터의 인에이블 입력(enable input)에 연결된 유휴 검출기 회로를 더 포함하는 회로.
  14. 제10항에 있어서,
    상기 감산기의 입력에 연결되고, 고속(fast) 주파수 임계치 및 저속(slow) 주파수 임계치 중의 하나를 출력하는 멀티플렉서(multiplexer)를 더 포함하는 회로.
  15. 제14항에 있어서,
    상기 멀리플렉서의 출력은 상기 회로의 현재 상태(CSTATE)에 의하여 결정되는 회로.
  16. 제10항에 있어서,
    상기 감산기의 출력은 상기 회로의 소망하는 상태(DSTATE)인 회로.
  17. 제16항에 있어서,
    상기 CSTATE와 상기 DSTATE의 XOR 연산 결과에 의해, 상기 렌더 클럭 신호의 주파수 레벨을 변경하는 신호가 어서팅되는(asserted) 경우 상기 주파수 스위칭 회로는 상기 신호를 수신하는 회로.
  18. 제17항에 있어서,
    상기 주파수 스위칭 유닛은, 그래픽 코어의 온도 레벨이 소정의 열 값(thermal value)을 초과하는 경우 상기 렌더 클럭 신호의 상기 주파수 레벨이 변경되지 않도록 하는 회로.
  19. 제18항에 있어서,
    상기 주파수 스위칭 유닛은, 상기 그래픽 코어의 상기 온도 레벨이 상기 소정의 열 값을 초과해도 상기 렌더 클럭 신호의 상기 주파수 레벨이 감소되도록 하는 회로.
  20. 집적 장치로서,
    그래픽 코어; 및
    상기 그래픽 코어의 동작적인 행동(operational behavior)과 관련된 이벤트를 모니터링하고, 상기 그래픽 코어의 상기 동작적인 행동의 조절을 위한 이벤트의 검출시에 상기 그래픽 코어에 신호를 보내는 회로
    를 포함하는 집적 장치.
  21. 제20항에 있어서,
    상기 회로에 의하여 모니터링되는 상기 이벤트는 상기 그래픽 코어에 의한 비데이터(non-data) 프로세싱 작동에 의한 총 런타임과 연관된 유휴도의 퍼센티지인 집적 장치.
  22. 제21항에 있어서, 상기 회로는,
    상기 그래픽 코어에 연결되고, 상기 그래픽 코어에 렌더 클럭 신호를 제공하는 클럭 소스 회로; 및
    상기 유휴도가 정해진 시간 퍼센티지를 초과하면, 상기 그래픽 코어에 공급되는 상기 렌더 클럭 신호의 주파수 레벨을 감소시키는 작동 제어 회로
    를 포함하는 집적 장치.
  23. 제22항에 있어서,
    상기 작동 제어 회로는, 상기 유휴도의 퍼센티지가 선택된 임계치 이하로 내려가면 상기 렌더 클럭 신호의 상기 주파수 레벨을 증가시키는 집적 장치.
  24. 제20항에 있어서,
    상기 회로에 의하여 모니터링된 상기 이벤트는 클럭 속도 비율(clock speed ratios)을 포함하는 집적 장치.
  25. 제20항에 있어서,
    상기 회로에 의하여 모니터링된 상기 이벤트는 클럭 스로틀링(throttling) 퍼센티지를 포함하는 집적 장치.
  26. 제20항에 있어서,
    상기 동작적인 행동은 상기 그래픽 코어에 인가된 전압 레벨인 집적 장치.
  27. 컴퓨팅 장치로서,
    프로세서; 및
    상기 프로세서에 연결되고, 그래픽 코어와, 상기 그래픽 코어로부터 공급되는 전압 및 렌더 클럭 신호의 주파수를 변경하는 회로를 포함하는 그래픽 메모리 제어기 허브- 상기 회로는, 상기 그래픽 코어의 측정된 유휴도가 초과되는 경우 상기 렌더 클럭 신호의 주파수 레벨을 감소시킴 -
    를 포함하는 컴퓨팅 장치.
  28. 제27항에 있어서,
    상기 그래픽 메모리 제어기 허브의 상기 회로는,
    상기 그래픽 코어에 의한 데이터 프로세싱 작동을 모니터링함으로써 유휴도를 판정하는 작동 지시기 회로; 및
    상기 작동 지시기 회로에 연결되고, 상기 작동 지시기 회로에 의하여 판정된 유휴도의 양에 기초하여 상기 렌더 클럭 신호의 상기 주파수 레벨을 조절하는 신호를 발생시키는 상태 시퀀서
    를 포함하는 컴퓨팅 장치.
  29. 제28항에 있어서, 상기 작동 지시기 회로는,
    압축(compression)/복원(decompression) 유닛(MPEG_DONE), 3차원 렌더링 유닛(3D_DONE), 2차원 렌더링 유닛(BLT_DONE) 및 하드웨어 비닝(binning) 유닛 중 적어도 2개를 포함하는 복수의 유닛들 각각이 유휴상태일 때 활성 글로벌 유휴(active Global Idle(GIDLE)) 신호를 생성하기 위한 유휴 검출기를 포함하는 컴퓨팅 장치.
KR1020047017963A 2002-05-09 2003-04-02 그래픽 메모리 제어기 허브 및 그 제어 회로, 집적 장치 및 컴퓨팅 장치 KR100866428B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/143,406 US7149909B2 (en) 2002-05-09 2002-05-09 Power management for an integrated graphics device
US10/143,406 2002-05-09
PCT/US2003/010428 WO2003096170A2 (en) 2002-05-09 2003-04-02 Power management for an integrated graphics device

Publications (2)

Publication Number Publication Date
KR20040104713A true KR20040104713A (ko) 2004-12-10
KR100866428B1 KR100866428B1 (ko) 2008-10-31

Family

ID=29400127

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047017963A KR100866428B1 (ko) 2002-05-09 2003-04-02 그래픽 메모리 제어기 허브 및 그 제어 회로, 집적 장치 및 컴퓨팅 장치

Country Status (9)

Country Link
US (1) US7149909B2 (ko)
JP (1) JP4249701B2 (ko)
KR (1) KR100866428B1 (ko)
CN (1) CN100456209C (ko)
AU (1) AU2003223464A1 (ko)
DE (1) DE10392619B4 (ko)
GB (1) GB2405009B (ko)
TW (1) TWI289806B (ko)
WO (1) WO2003096170A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101047540B1 (ko) * 2009-09-14 2011-07-07 엠텍비젼 주식회사 전자 디바이스 및 그 전력 소모 조절 방법
KR101441228B1 (ko) * 2010-06-29 2014-09-17 인텔 코오퍼레이션 고체-상태 드라이브의 성능 및/또는 신뢰성을 개선하는 방법 및 시스템
KR101534480B1 (ko) * 2013-03-12 2015-07-09 인텔 코포레이션 그래픽 관련 워크로드들에 대한 전력 절감 기술

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7886164B1 (en) 2002-11-14 2011-02-08 Nvidia Corporation Processor temperature adjustment system and method
US7849332B1 (en) * 2002-11-14 2010-12-07 Nvidia Corporation Processor voltage adjustment system and method
US7882369B1 (en) 2002-11-14 2011-02-01 Nvidia Corporation Processor performance adjustment system and method
US7348957B2 (en) * 2003-02-14 2008-03-25 Intel Corporation Real-time dynamic design of liquid crystal display (LCD) panel power management through brightness control
US6871119B2 (en) * 2003-04-22 2005-03-22 Intel Corporation Filter based throttling
JP2004355081A (ja) * 2003-05-27 2004-12-16 Internatl Business Mach Corp <Ibm> 情報処理装置及びメモリモジュール
US20050057485A1 (en) * 2003-09-15 2005-03-17 Diefenbaugh Paul S. Image color transformation to compensate for register saturation
US20050057484A1 (en) * 2003-09-15 2005-03-17 Diefenbaugh Paul S. Automatic image luminance control with backlight adjustment
US7903116B1 (en) * 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
US20050125701A1 (en) * 2003-12-03 2005-06-09 International Business Machines Corporation Method and system for energy management via energy-aware process scheduling
US7752470B2 (en) * 2003-12-03 2010-07-06 International Business Machines Corporation Method and system for power management including device controller-based device use evaluation and power-state control
US7155623B2 (en) * 2003-12-03 2006-12-26 International Business Machines Corporation Method and system for power management including local bounding of device group power consumption
US7356665B2 (en) 2003-12-17 2008-04-08 International Business Machines Corporation Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines
US7187220B1 (en) * 2003-12-18 2007-03-06 Nvidia Corporation Memory clock slowdown
US7197652B2 (en) * 2003-12-22 2007-03-27 International Business Machines Corporation Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring
US20050156930A1 (en) * 2004-01-20 2005-07-21 Matsushita Electric Industrial Co., Ltd. Rendering device and rendering method
US7479753B1 (en) 2004-02-24 2009-01-20 Nvidia Corporation Fan speed controller
US7698575B2 (en) * 2004-03-30 2010-04-13 Intel Corporation Managing power consumption by requesting an adjustment to an operating point of a processor
US7689848B2 (en) * 2004-06-21 2010-03-30 Koninklijke Philips Electronics N.V. Power management adapted to compute average length of time that a processor is idle during each processing cycle from synchronization signals
US8358262B2 (en) 2004-06-30 2013-01-22 Intel Corporation Method and apparatus to synchronize backlight intensity changes with image luminance changes
US7343502B2 (en) * 2004-07-26 2008-03-11 Intel Corporation Method and apparatus for dynamic DLL powerdown and memory self-refresh
US7827424B2 (en) * 2004-07-29 2010-11-02 Ati Technologies Ulc Dynamic clock control circuit and method
US20060095811A1 (en) * 2004-09-15 2006-05-04 Damon Afualo Apparatus and method for graphics memory controlling hub (GMCH) clocking support for dual television encoders
US7222253B2 (en) * 2004-12-28 2007-05-22 Intel Corporation Dynamic power control for reducing voltage level of graphics controller component of memory controller based on its degree of idleness
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
US7598959B2 (en) * 2005-06-29 2009-10-06 Intel Corporation Display controller
US7433191B2 (en) * 2005-09-30 2008-10-07 Apple Inc. Thermal contact arrangement
JP2007141020A (ja) * 2005-11-21 2007-06-07 Seiko Epson Corp データ処理装置及び電子機器
US7613941B2 (en) * 2005-12-29 2009-11-03 Intel Corporation Mechanism for self refresh during advanced configuration and power interface (ACPI) standard C0 power state
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
US7882380B2 (en) * 2006-04-20 2011-02-01 Nvidia Corporation Work based clock management for display sub-system
US8118483B2 (en) 2006-06-21 2012-02-21 Intel Corporation Thermal sensor having toggle control
US7882381B2 (en) 2006-06-29 2011-02-01 Intel Corporation Managing wasted active power in processors based on loop iterations and number of instructions executed since last loop
US7882384B2 (en) * 2006-08-31 2011-02-01 National Semiconductor Corporation Setting and minimizing a derived clock frequency based on an input time interval
US7802118B1 (en) 2006-12-21 2010-09-21 Nvidia Corporation Functional block level clock-gating within a graphics processor
US7797561B1 (en) 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7958483B1 (en) * 2006-12-21 2011-06-07 Nvidia Corporation Clock throttling based on activity-level signals
US9134782B2 (en) 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US7917789B2 (en) * 2007-09-28 2011-03-29 Intel Corporation System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms
US7900497B2 (en) 2007-12-04 2011-03-08 Hitachi Global Storage Technologies Netherlands B.V. System, method and apparatus for obtaining true roughness of granular media
US7817488B2 (en) * 2007-12-20 2010-10-19 Sandisk Corporation Load balancing by using clock gears
US8243085B2 (en) * 2007-12-30 2012-08-14 Intel Corporation Boosting graphics performance based on executing workload
US8370663B2 (en) 2008-02-11 2013-02-05 Nvidia Corporation Power management with dynamic frequency adjustments
US8525840B2 (en) * 2008-05-15 2013-09-03 Apple Inc. Thermal management of graphics processing units
US8199158B2 (en) * 2008-06-11 2012-06-12 Intel Corporation Performance allocation method and apparatus
US9063713B2 (en) * 2008-10-28 2015-06-23 Apple Inc. Graphics controllers with increased thermal management granularity
US8269525B2 (en) * 2009-11-17 2012-09-18 Ati Technologies Ulc Logic cell having reduced spurious toggling
US9256265B2 (en) 2009-12-30 2016-02-09 Nvidia Corporation Method and system for artificially and dynamically limiting the framerate of a graphics processing unit
US9830889B2 (en) 2009-12-31 2017-11-28 Nvidia Corporation Methods and system for artifically and dynamically limiting the display resolution of an application
US8352758B2 (en) * 2010-03-22 2013-01-08 International Business Machines Corporation Power bus current bounding using local current-limiting soft-switches and device requirements information
US8839006B2 (en) 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8799685B2 (en) 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
US8477490B2 (en) 2011-05-02 2013-07-02 Apple Inc. Cooling system for mobile electronic devices
US9400545B2 (en) 2011-12-22 2016-07-26 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices
US9105249B2 (en) * 2011-12-29 2015-08-11 Intel Corporation Energy conservation in a controller using dynamic frequency selection
US9323307B2 (en) * 2011-12-30 2016-04-26 Intel Corporation Active display processor sleep state
US20140032938A1 (en) * 2012-07-27 2014-01-30 Texas Instruments Incorporated Power Management
KR101987160B1 (ko) 2012-09-24 2019-09-30 삼성전자주식회사 디스플레이 드라이버 집적회로, 그것을 포함하는 디스플레이 시스템 및 그것의 디스플레이 데이터 처리 방법
US9125299B2 (en) 2012-12-06 2015-09-01 Apple Inc. Cooling for electronic components
US9275601B2 (en) 2012-12-12 2016-03-01 Intel Corporation Techniques to control frame display rate
US9098282B2 (en) 2012-12-27 2015-08-04 Intel Corporation Methods, systems and apparatus to manage power consumption of a graphics engine
US9910473B2 (en) 2013-03-14 2018-03-06 Silicon Storage Technology, Inc. Power management for a memory device
US9552781B2 (en) 2013-03-15 2017-01-24 Intel Corporation Content adaptive LCD backlight control
KR101484600B1 (ko) 2013-05-28 2015-01-22 부산대학교 산학협력단 카운터 기반 멀티 사이클 프로세서 제어 장치
CN103345296B (zh) * 2013-06-04 2016-08-10 三星半导体(中国)研究开发有限公司 动态电压频率调整触发装置和方法
US9223167B2 (en) 2013-06-26 2015-12-29 Apple Inc. Liquid crystal switching barrier thermal control
US9389029B2 (en) 2013-09-30 2016-07-12 Apple Inc. Heat transfer structure
KR102105408B1 (ko) 2013-12-02 2020-04-29 삼성전자주식회사 디스플레이 드라이버 ic, 이의 동작 방법, 및 이를 포함하는 장치들
KR102222752B1 (ko) 2014-08-01 2021-03-04 삼성전자주식회사 프로세서의 동적 전압 주파수 스케일링 방법
KR102325453B1 (ko) * 2014-12-04 2021-11-11 삼성전자주식회사 반도체 장치의 동작 방법
US9674986B2 (en) 2015-08-03 2017-06-06 Apple Inc. Parallel heat spreader
US9817431B2 (en) 2016-02-03 2017-11-14 Qualcomm Incorporated Frame based clock rate adjustment for processing unit
US10754410B2 (en) * 2018-11-09 2020-08-25 Monolithic Power Systems, Inc. System and method for standby mode operation of power management system
KR20220036232A (ko) * 2020-09-15 2022-03-22 에스케이하이닉스 주식회사 전자 장치 및 전자 장치의 동작 방법
US11449125B1 (en) 2021-04-01 2022-09-20 Qualcomm Incorporated Adaptive dynamic clock and voltage scaling
CN116449961B (zh) * 2023-06-14 2023-10-10 蔚来汽车科技(安徽)有限公司 输入事件控制方法、系统、电子设备、存储介质及车辆

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4238784A (en) 1975-01-23 1980-12-09 Colt Industries Operating Corp. Electronic measuring system with pulsed power supply and stability sensing
JPS59200327A (ja) 1983-04-26 1984-11-13 Nec Corp 周辺装置の制御方式
US4825337A (en) 1988-05-17 1989-04-25 Prime Computer, Inc. Circuit board thermal contact device
US5153535A (en) 1989-06-30 1992-10-06 Poget Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
US5021679A (en) 1989-06-30 1991-06-04 Poqet Computer Corporation Power supply and oscillator for a computer system providing automatic selection of supply voltage and frequency
JP2879694B2 (ja) 1990-01-29 1999-04-05 株式会社日立製作所 情報処理システム及び外部記憶装置
EP0448328B1 (en) 1990-03-20 1995-12-06 Fujitsu Limited Digital-to-analog converter having a circuit for compensating for variation in output dependent on temperature change
EP0474963A3 (en) 1990-09-13 1992-04-15 Kabushiki Kaisha Toshiba Computer system having sleep mode function
JPH05119876A (ja) 1991-10-25 1993-05-18 Toshiba Corp 電子装置及びその装置に含まれる集積回路
US5254992A (en) 1991-10-31 1993-10-19 Fairbanks Inc. Low power electronic measuring system
US5369771A (en) 1991-12-23 1994-11-29 Dell U.S.A., L.P. Computer with transparent power-saving manipulation of CPU clock
JPH05297993A (ja) 1992-04-16 1993-11-12 Dia Semikon Syst Kk マイクロプロセッサの駆動制御装置
US5603036A (en) 1993-02-19 1997-02-11 Intel Corporation Power management system for components used in battery powered applications
EP0632360A1 (en) 1993-06-29 1995-01-04 Xerox Corporation Reducing computer power consumption by dynamic voltage and frequency variation
US5537343A (en) 1993-09-02 1996-07-16 Elonex Technologies, Inc. Digital assistant system having a host computer with a docking bay and a moveable heat sink for cooling a docked module
US5721837A (en) 1993-10-28 1998-02-24 Elonex I.P. Holdings, Ltd. Micro-personal digital assistant including a temperature managed CPU
US5478221A (en) 1994-01-31 1995-12-26 Lzr Electronics, Inc. Miniature fan for printed circuit board
JP2941161B2 (ja) 1994-02-04 1999-08-25 キヤノン株式会社 組込み型電子機器と該電子機器における機器脱着方法
US5625829A (en) 1994-03-25 1997-04-29 Advanced Micro Devices, Inc. Dockable computer system capable of symmetric multi-processing operations
ATE195380T1 (de) 1994-03-25 2000-08-15 Advanced Micro Devices Inc Gerät und verfahren zum ermöglichen der ankoppelung eines koppelbaren rechnersystems während des betriebes
US5598537A (en) 1994-03-25 1997-01-28 Advanced Micro Devices, Inc. Apparatus and method for driving a bus to a docking safe state in a dockable computer system including a docking station and a portable computer
US5664118A (en) 1994-03-28 1997-09-02 Kabushiki Kaisha Toshiba Computer system having detachable expansion unit
US5930110A (en) 1994-03-28 1999-07-27 Kabushiki Kaisha Toshiba Computer system having detachable expansion unit
US5752011A (en) 1994-06-20 1998-05-12 Thomas; C. Douglas Method and system for controlling a processor's clock frequency in accordance with the processor's temperature
US5550710A (en) 1994-09-09 1996-08-27 Hitachi Computer Products (America), Inc. Packaging and cooling structure for the personal processor module
US5734585A (en) 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US5745041A (en) 1995-07-11 1998-04-28 Dell U.S.A., L.P. System for dissipating heat from a power supply
US5745375A (en) 1995-09-29 1998-04-28 Intel Corporation Apparatus and method for controlling power usage
US5798951A (en) 1995-12-29 1998-08-25 Intel Corporation Method and apparatus for automatic un-preconditioned insertion/removal capability between a notebook computer and a docking station
US5781783A (en) 1996-06-28 1998-07-14 Intel Corporation Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit
US5760636A (en) 1996-06-28 1998-06-02 Intel Corporation Adjusting clock frequency and voltage supplied to a processor in a computer system
KR100204334B1 (ko) * 1996-07-05 1999-06-15 윤종용 표시모드 변환기능을 갖는 비디오신호 변환장치 및 그 장치를 구비한 표시장치
US6275945B1 (en) 1996-11-26 2001-08-14 Kabushiki Kaisha Toshiba Apparatus for radiating heat for use in computer system
US6018803A (en) 1996-12-17 2000-01-25 Intel Corporation Method and apparatus for detecting bus utilization in a computer system based on a number of bus events per sample period
US6125450A (en) 1996-12-19 2000-09-26 Intel Corporation Stop clock throttling in a computer processor through disabling bus masters
US5884049A (en) 1996-12-31 1999-03-16 Compaq Computer Corporation Increased processor performance comparable to a desktop computer from a docked portable computer
US5974556A (en) 1997-05-02 1999-10-26 Intel Corporation Circuit and method for controlling power and performance based on operating environment
US5987614A (en) 1997-06-17 1999-11-16 Vadem Distributed power management system and method for computer
US6052133A (en) * 1997-06-27 2000-04-18 S3 Incorporated Multi-function controller and method for a computer graphics display system
US6021506A (en) * 1998-07-31 2000-02-01 Intel Corporation Method and apparatus for stopping a bus clock while there are no activities on a bus
US6460125B2 (en) * 1998-08-07 2002-10-01 Ati Technologies, Inc. Dynamic memory clock control system and method
US6292201B1 (en) 1998-11-25 2001-09-18 Silicon Integrated Systems Corporation Integrated circuit device having a core controller, a bus bridge, a graphical controller and a unified memory control unit built therein for use in a computer system
US6397343B1 (en) * 1999-03-19 2002-05-28 Microsoft Corporation Method and system for dynamic clock frequency adjustment for a graphics subsystem in a computer
US6848058B1 (en) * 1999-06-04 2005-01-25 Ati International Srl Power reduction circuit and method with multi clock branch control
US6633987B2 (en) 2000-03-24 2003-10-14 Intel Corporation Method and apparatus to implement the ACPI(advanced configuration and power interface) C3 state in a RDRAM based system
US6442697B1 (en) 2000-03-24 2002-08-27 Intel Corporation Method and apparatus to control processor power and performance for single phase lock loop (PLL) processor systems
US6407595B1 (en) * 2000-04-04 2002-06-18 Silicon Integrated Systems Corp. Digital clock throttling means
US6715089B2 (en) * 2001-01-22 2004-03-30 Ati International Srl Reducing power consumption by estimating engine load and reducing engine clock speed
US6509788B2 (en) * 2001-03-16 2003-01-21 Hewlett-Packard Company System and method utilizing on-chip voltage controlled frequency modulation to manage power consumption

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101047540B1 (ko) * 2009-09-14 2011-07-07 엠텍비젼 주식회사 전자 디바이스 및 그 전력 소모 조절 방법
KR101441228B1 (ko) * 2010-06-29 2014-09-17 인텔 코오퍼레이션 고체-상태 드라이브의 성능 및/또는 신뢰성을 개선하는 방법 및 시스템
US9317362B2 (en) 2010-06-29 2016-04-19 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
KR101534480B1 (ko) * 2013-03-12 2015-07-09 인텔 코포레이션 그래픽 관련 워크로드들에 대한 전력 절감 기술

Also Published As

Publication number Publication date
DE10392619T5 (de) 2005-08-04
US20030210247A1 (en) 2003-11-13
GB2405009A (en) 2005-02-16
CN1666166A (zh) 2005-09-07
WO2003096170A2 (en) 2003-11-20
JP4249701B2 (ja) 2009-04-08
CN100456209C (zh) 2009-01-28
TWI289806B (en) 2007-11-11
WO2003096170A3 (en) 2004-02-05
US7149909B2 (en) 2006-12-12
GB0424629D0 (en) 2004-12-08
GB2405009B (en) 2005-08-24
TW200404265A (en) 2004-03-16
JP2005524903A (ja) 2005-08-18
AU2003223464A1 (en) 2003-11-11
DE10392619B4 (de) 2008-10-16
KR100866428B1 (ko) 2008-10-31

Similar Documents

Publication Publication Date Title
KR100866428B1 (ko) 그래픽 메모리 제어기 허브 및 그 제어 회로, 집적 장치 및 컴퓨팅 장치
US7100061B2 (en) Adaptive power control
US6192479B1 (en) Data processing with progressive, adaptive, CPU-driven power management
US6785829B1 (en) Multiple operating frequencies in a processor
US6016071A (en) Internal source clock generation circuit for use with power management scheme
US5560017A (en) System with clock frequency controller responsive to interrupt independent of software routine and software loop repeatedly executing instruction to slow down system clock
KR20080097419A (ko) 독립 주파수 및/또는 전압에서 집적 회로의 컴포넌트를동작시키는 시스템 및 방법
US7181188B2 (en) Method and apparatus for entering a low power mode
KR100818474B1 (ko) 중앙처리장치의 발열 제어 장치 및 방법
KR100385155B1 (ko) 외부핀신호를다중화하는장치를포함하는집적프로세서
US20130173946A1 (en) Controlling power consumption through multiple power limits over multiple time intervals
WO2007024396A1 (en) Methods and apparatuses for dynamic power control
JP2009064456A (ja) 動的電圧制御方法および装置
WO2012058202A1 (en) Method and apparatus for thermal control of processing nodes
US11644884B2 (en) Controlling a processor clock
EP0556198B1 (en) System clock speed controller
US20240106438A1 (en) Droop detection and control of digital frequency-locked loop
JPH0683476A (ja) 情報処理装置
JPH04239305A (ja) 情報処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
S901 Examination by remand of revocation
E902 Notification of reason for refusal
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120919

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131001

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee