KR20230037757A - 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법 - Google Patents

주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법 Download PDF

Info

Publication number
KR20230037757A
KR20230037757A KR1020210120607A KR20210120607A KR20230037757A KR 20230037757 A KR20230037757 A KR 20230037757A KR 1020210120607 A KR1020210120607 A KR 1020210120607A KR 20210120607 A KR20210120607 A KR 20210120607A KR 20230037757 A KR20230037757 A KR 20230037757A
Authority
KR
South Korea
Prior art keywords
processor
frequency
clock signal
cores
core
Prior art date
Application number
KR1020210120607A
Other languages
English (en)
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 삼성전자주식회사
Priority to KR1020210120607A priority Critical patent/KR20230037757A/ko
Priority to US17/718,699 priority patent/US11921554B2/en
Publication of KR20230037757A publication Critical patent/KR20230037757A/ko

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/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/02Digital function generators
    • G06F1/03Digital function generators working, at least partly, by table look-up
    • 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
    • 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/3243Power saving in microcontroller unit
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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

본 개시의 실시 예에 따른 동적 발열 제어를 위한 장치는 프로세서가 포함하는 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 열 관리 유닛, 및 상기 지시 신호에 응답하여, 상기 프로세서가 포함하는 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 컨트롤러를 포함하되, 상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나이다.

Description

주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법{APPARATUS AND METHOD FOR DYNAMIC THERMAL MANAGEMENT USING FREQUENCY CLAMPING AND IDLE INJECTION}
본 개시는 전자 장치에 관한 것으로, 좀 더 상세하게는 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법에 관한 것이다.
모바일 장치는 배터리의 출력 전압을 동작 전압으로 사용하고, 사용자와 밀접한 접촉이 이루어진다. 특히, 높은 데이터 처리량을 요구하는 모바일 장치의 경우, 발열에 의한 사용자의 저온 화상을 방지하고, 열 저항의 증가로 인해 전력 소모가 증가하는 것을 방지하고, 모바일 장치의 구성 소자들의 물리적 손상 및/또는 화학적인 손상을 방지할 필요가 있다.
이러한 문제점들을 해결하기 위해 모바일 장치의 동작 상태에 따라서 동작 주파수 및 동작 전압을 동적으로 변경하는 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling; DVFS) 기술이 제시되고 있다. 그러나, 주파수 간의 그래뉼래리티(granularity)로 인하여, 미세한 주파수 변경이 불가능한 상황이다. 또한, 모바일 장치의 동적 전력에 비해 정적 전력이 큰 경우, 특정 주파수 구간에서는 동작 주파수를 줄이는 것이 오히려 더 큰 전력 소모를 초래할 수도 있다.
본 개시는 주파수 클램핑 및 아이들 인젝션을 이용하여 성능 저하를 최소화할 수 있는 동적 발열 제어를 위한 장치 및 방법을 제공한다.
본 개시의 실시 예에 따른 동적 발열 제어를 위한 장치는 프로세서가 포함하는 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 열 관리 유닛, 및 상기 지시 신호에 응답하여, 상기 프로세서가 포함하는 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 컨트롤러를 포함하되, 상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나이다.
본 개시의 실시 예에 따른 동적 발열 제어를 위한 방법은 프로세서가 포함하는 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 단계, 및 상기 지시 신호에 응답하여, 상기 프로세서가 포함하는 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 단계를 포함하되, 상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나이다.
본 개시의 실시 예에 따른 모바일 장치는 복수의 코어들 및 복수의 열 센서들을 포함하는 프로세서, 상기 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 열 관리 유닛, 상기 복수의 코어들 각각으로 전원들을 제공하는 전원 관리 유닛, 상기 프로세서로 동작 전압을 제공하는 PMIC, 상기 프로세서로 클럭 신호를 제공하는 클럭 관리 유닛, 및 상기 지시 신호에 응답하여, 상기 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 동작 전압의 레벨 및 상기 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 컨트롤러를 포함하되, 상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나이다.
본 개시의 실시 예에 따르면, 주파수 클램핑 및 아이들 인젝션을 함께 이용하는 동적 발열 제어를 통해 프로세서의 성능 저하를 최소화함과 동시에 뛰어난 냉각 효과를 얻을 수 있다.
또한 본 개시의 실시 예에 따르면, 프로세서가 수행 중인 태스크 또는 반도체 장치를 구성하는 기판의 열전도율을 고려한 동적 발열 제어를 수행할 수 있다.
도 1은 본 개시의 실시 예에 따른 동적 발열 제어를 위한 시스템의 구성을 나타내는 블록도이다.
도 2는 도 1의 프로세서의 구성의 예를 나타낸다.
도 3a는 온도들과 관련된 정보에 대응하는 최대 전력 예산을 저장하는 룩-업 테이블의 예를 나타낸다.
도 3b는 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수의 쌍에 대응하는 최대 전력 예산을 저장하는 룩-업 테이블의 예를 나타낸다
도 4는 본 개시의 실시 예에 따른 동적 발열 제어 방법을 나타내는 흐름도이다.
도 5는 프로세서의 성능을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다.
도 6은 프로세서의 냉각을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다.
도 7은 본 개시의 다른 실시 예에 따른 동적 발열 제어를 위한 시스템의 구성을 나타내는 블록도이다.
도 8은 본 개시의 다른 실시 예에 따른 프로세서의 성능을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다.
도 9는 본 개시의 다른 실시 예에 따른 프로세서의 냉각을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다.
이하에서, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재될 것이다.
상세한 설명에서 사용되는 부 또는 유닛(unit), 모듈(module), 블록(block), ~기(~or, ~er) 등의 용어들을 참조하여 설명되는 구성 요소들 및 도면에 도시된 기능 블록들은 소프트웨어, 또는 하드웨어, 또는 그것들의 조합의 형태로 구현될 수 있다. 예시적으로, 소프트웨어는 기계 코드, 펌웨어, 임베디드 코드, 및 애플리케이션 소프트웨어일 수 있다. 예를 들어, 하드웨어는 전기 회로, 전자 회로, 프로세서, 컴퓨터, 집적 회로, 집적 회로 코어들, 압력 센서, 관성 센서, 멤즈(microelectromechanical system; MEMS), 수동 소자, 또는 그것들의 조합을 포함할 수 있다.
도 1은 본 개시의 실시 예에 따른 동적 발열 제어를 위한 시스템(100)의 구성을 나타내는 블록도이다. 예를 들어, 시스템(100)은 모바일 장치의 일부로서 구현될 수 있다. 예를 들어, 모바일 장치는 랩탑 컴퓨터, 스마트폰, 태블릿 PC, PDA(personal digital assistant), 디지털 카메라, PMP(portable multimedia player), 휴대용 게임 콘솔, 웨어러블 컴퓨터, 사물 인터넷(internet of things(IoT)) 장치 중 어느 하나일 수 있으나, 본 개시는 이에 한정되지 않는다.
구체적으로, 시스템(100)은 상술한 모바일 장치 상에 집적 회로(integrated circuit(IC)), 시스템 온 칩(system on chip(SoC)), 애플리케이션 프로세서(application processor(AP)), 모바일 AP, 칩셋(chip set), 또는 반도체 칩들의 집합으로서 구현될 수 있으나, 본 개시는 이에 한정되지 않는다.
시스템(100)은 프로세서(110), 열 관리 유닛(120), 컨트롤러(130), 전원 관리 유닛(140), 전력 관리 집적 회로(PMIC)(150), 및 클럭 관리 유닛(160)을 포함할 수 있다. 본 개시의 시스템(100)은 프로세서(110) 내부의 온도에 기반하여 열 관리 유닛(120) 및 컨트롤러(130)를 통해 전원 관리 유닛(140), PMIC(150), 및 클럭 관리 유닛(160)을 제어하여, 프로세서(110)의 발열을 동적으로 제어하도록 구현될 수 있다.
프로세서(110)는 시스템(100)에서 수행될 소프트웨어(예를 들어, 응용 프로그램, 운영 체제, 장치 드라이버 등)를 실행할 수 있다. 예를 들어, 프로세서(110)는 중앙 처리 장치(Central Processing Unit; CPU) 또는 그래픽 처리 장치(Graphics Processing Unit; GPU) 중 하나일 수 있으나, 본 개시는 이에 한정되지 않는다. 프로세서(110)는 PMIC(150)로부터 제공되는 동작 전압(VP)과 클럭 관리 유닛(160)으로부터 제공되는 클럭 신호(CLK)를 이용하여 동작할 수 있다.
프로세서(110)는 복수의 코어들(Core 1~Core M)을 포함하는 멀티코어 프로세서일 수 있고, 코어들의 개수는 다양할 수 있다. 복수의 코어들(Core 1~Core M) 각각은 적어도 하나의 태스크를 수행할 수 있다. 복수의 코어들(Core 1~Core M)은 동종(Homogeneous) 프로세서 코어들일 수도 있고, 이종(Heterogeneous) 프로세서 코어들일 수도 있다. 즉, 프로세서(110)는 동종 멀티코어 프로세서 또는 이종 멀티코어 프로세서 중 하나일 수 있다. 복수의 코어들(Core 1~Core M) 각각은 전원 관리 유닛(140)을 통해 공급되는 전원들(PW1~PWM)을 통해 제어될 수 있다.
복수의 코어들(Core 1~Core M) 각각은 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태일 수 있다. 여기서 웨이크-업 상태란, 코어가 태스크를 수행하고 있는 상태이거나, 또는 태스크를 할당 받는 즉시 작동할 수 있는 상태를 의미할 수 있다. 다시 말해, 웨이크-업 상태는 코어로 공급되는 전원의 레벨이 기준 레벨 이상인 상태를 의미할 수 있다. 반면 아이들 상태란, 코어가 태스크를 할당 받더라도 즉시 작동할 수 없는 상태를 의미할 수 있다. 다시 말해, 아이들 상태는 코어로 공급되는 전원의 레벨이 기준 레벨보다 낮은 상태를 의미할 수 있다. 아이들 상태인 코어가 많을수록, 프로세서(110)의 발열은 감소할 수 있다.
한편, 일부 실시 예들에서는 복수의 코어들(Core 1~Core M) 각각의 웨이크-업 상태 또는 아이들 상태가, 각 코어들(Core 1~Core m)에 인가되는 클럭의 레벨이 기준 레벨 이상인지 여부에 따라 구분될 수 있고, 또는 클럭의 레벨과 전원의 레벨을 함께 고려하여 구분될 수도 있다.
복수의 코어들(Core 1~Core M) 각각은 독립적으로 작동할 수 있고, 복수의 코어들(Core 1~Core M) 각각의 상태도 독립적일 수 있다. 예를 들어, 제 1 코어(Core 1)가 웨이크-업 상태일 때, 제 2 코어(Core 2)는 아이들 상태일 수 있다. 예를 들어, 제 1 코어(Core 1)가 웨이크-업 상태라는 것은 제 1 코어(Core 1)로 공급되는 제 1 전원(PW1)의 레벨이 기준 레벨 이상이라는 것을 의미할 수 있고, 제 2 코어(Core 2)가 아이들 상태라는 것은 제 2 코어(Core 2)로 공급되는 제 2 전원(PW2)의 레벨이 기준 레벨보다 낮다는 것을 의미할 수 있다.
예를 들어, 복수의 코어들(Core 1~Core M) 각각은 대형(big) 코어, 중형(middle) 코어, 또는 소형(little) 코어 중 하나로 분류될 수 있다. 대형 코어는 전력 소모가 크지만, 태스크를 수행하는 성능이 높은(즉, 처리 속도가 빠른) 고전력, 고성능 코어일 수 있고, 소형 코어는 전력 소모가 작지만, 태스크를 수행하는 성능이 낮은(즉, 처리 속도가 느린) 저전력, 저성능 코어일 수 있다. 중형 코어의 경우, 전력 소모는 대형 코어보다는 작지만 소형 코어보다는 클 수 있고, 태스크를 수행하는 성능은 대형 코어보다는 낮지만 소형 코어보다는 높을 수 있다. 즉, 코어의 종류(대형, 중형, 소형)는 코어의 성능을 결정할 수 있다. 그러므로, 프로세서(110)의 성능은 코어들(Core 1~Core M) 각각의 성능에 따라 결정될 수 있다.
프로세서(110)는 코어들(Core 1~Core M) 주위의 온도를 측정하기 위한 복수의 열 센서들(TS1~TSN)을 포함할 수 있다. 예를 들어, 열 센서들(TS1~TSN)은 코어들(Core 1~Core M)의 핫 스팟(hot spot) 주위에 배치 또는 집적될 수 있다. 열 센서들(TS1~TSN)의 개수는 코어들(Core 1~Core M)의 개수와 서로 다를 수 있다. 복수의 열 센서들(TS1~TSN) 각각은 측정한 온도(T1~TN)를 열 관리 유닛(120)으로 제공할 수 있다. 열 센서들(TS1~TSN)로부터 측정된 온도(T1~TN)는 동적 발열 제어를 수행하는 데 있어서 기준이 될 수 있다.
열 관리 유닛(120)은 각 열 센서(TS1~TSN)로부터 출력된 각 온도(T1~TN)에 기반하여, 컨트롤러(130)의 동작을 활성화할 수 있는 지시 신호(IND)를 생성할 수 있다. 구체적으로, 열 관리 유닛(120)은 컨트롤러(130)가 프로세서(110)의 발열을 제어할 필요가 있는지 여부(즉, 동적 발열 제어를 통해 프로세서(110)를 냉각시킬 필요가 있는지 여부)를 판단할 수 있다.
예를 들어, 열 관리 유닛(120)은 열 센서들(TS1~TSN)로부터 출력된 온도들(T1~TN)의 최고 온도, 최저 온도, 또는 평균 온도에 기반하여 컨트롤러(130)가 프로세서(110)에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단할 수 있다. 또한, 일부 실시 예에서 열 관리 유닛(120)은 온도들(T1~TN)에 대해 각각 다른 가중치를 부여함으로써 온도들(T1~TN)의 다양한 조합에 기반하여 프로세서(110)에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단할 수도 있고, 온도들(T1~TN) 중 특정 온도만을 이용하여 발열 제어를 수행할 필요가 있는지 여부를 판단할 수도 있다.
설명의 편의를 위해, 이하에서 온도들(T1~TN)의 최고 온도, 최저 온도, 평균 온도, 또는 온도들(T1~TN)의 다양한 조합을 온도들(T1~TN)과 관련된 정보라고 나타내기로 한다. 컨트롤러(130)가 프로세서(110)의 발열을 제어할 필요가 있는 것으로 판단되는 경우, 열 관리 유닛(120)은 컨트롤러(130)의 동작을 활성화하기 위한 지시 신호(IND)를 생성할 수 있다.
컨트롤러(130)는 열 관리 유닛(120)으로부터 제공된 지시 신호(IND)에 기반하여, 프로세서(110)의 발열을 제어하기 위한 동작들을 수행할 수 있다. 본 개시의 컨트롤러(130)는 프로세서(110)의 발열을 제어하기 위해 세 가지 방법을 이용할 수 있다. 제 1 방법으로서, 컨트롤러(130)는 복수의 코어들(Core 1~Core M) 각각의 상태(즉, 웨이크-업 상태 또는 아이들 상태)를 제어할 수 있다. 제 2 방법으로서, 컨트롤러(130)는 프로세서(110)로 공급되는 동작 전압(VP)의 레벨 및 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수를 함께 제어할 수 있다. 제 3 방법으로서, 컨트롤러(130)는 클럭 신호(CLK)의 주파수만을 제어할 수도 있다.
컨트롤러(130)는 프로세서(110)의 발열을 제어하기 위해, 상술한 제 1 내지 제 3 방법 중 하나의 방법만을 이용할 수도 있고, 두 개 이상의 방법을 조합하여 이용할 수도 있다. 컨트롤러(130)는 제 1 내지 제 3 방법을 어떻게 조합할 것인지에 따라, 각 방법에 대해 가중치를 부여할 수 있다. 예를 들어, 제 1 내지 제 3 방법에 대한 가중치들은 각각 0과 1 사이의 값이고, 가중치들의 합은 1일 수 있다.
이하의 설명 및 도면에서, 상술한 제 1 방법에 부여되는 가중치는 I, 제 2 방법에 부여되는 가중치는 FV, 제 3 방법에 부여되는 가중치는 F로 나타내기로 한다. 예를 들어, (I, FV, F)와 같은 표현은 각각 제 1 내지 제 3 방법에 부여되는 가중치들을 나타낼 수 있다. 각 방법에 부여되는 가중치는 컨트롤러(130)로부터 생성되는 제어 신호들(CTRL1~CTRL3)을 결정할 수 있다. 이로써, 전원들(PW1~PWM), 동작 전압(VP)의 레벨, 및 클럭 신호(CLK)의 주파수는 가중치들에 따라 다르게 조절될 수 있다.
컨트롤러(130)는 어떤 방법으로 동적 발열 제어를 수행할 것인지 결정하는 데 있어서(즉, 가중치들을 결정하는 데 있어서), 프로세서(110)의 성능을 최대화하는 것을 우선으로 하거나, 또는 프로세서(110)의 냉각을 최대화하는 것을 우선으로 할 수 있다. 프로세서(110)의 성능을 최대화하는 것을 우선으로 하는 경우, 컨트롤러(130)는 쓰로틀 구성 유닛(131) 및 최대 성능 검색 유닛(132)의 동작에 기반하여 상술한 가중치들 (I, FV, F)를 결정할 수 있다. 반면, 프로세서(110)의 냉각을 최대화하는 것을 우선으로 하는 경우, 컨트롤러(130)는 쓰로틀 변환 유닛(133) 및 최대 냉각 검색 유닛(134)의 동작에 기반하여 상술한 가중치들 (I, FV, F)를 결정할 수 있다.
나아가, 컨트롤러(130)는 프로세서(110)의 최대 전력 예산(Max Power Budget)에 관한 정보를 저장하고 사용할 수 있다. 최대 전력 예산은 프로세서(110)가 다양한 기능들을 수행하기 위해 사용할 수 있는 최대 전력을 나타낼 수 있다. 예를 들어, 컨트롤러(130)는 온도들(T1~TN)과 관련된 정보에 대응하는 최대 전력 예산을 저장하는 룩-업 테이블을 포함할 수 있다. 또는, 컨트롤러(130)는 프로세서(110)로 제공되는 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수의 쌍(pair)과, 대응하는 최대 전력 예산을 저장하는 룩-업 테이블을 포함할 수도 있다. 본 개시는 이에 한정되지 않으며, 컨트롤러(130)는 최대 전력 예산에 관한 정보를 룩-업 테이블 외의 다른 다양한 방법으로 저장할 수도 있다.
먼저, 프로세서(110)의 성능을 최대화하는 것을 우선으로 하여 동적 발열 제어의 방법을 결정하고자 하는 경우, 쓰로틀 구성 유닛(131)은 최대 전력 예산에 기반하여 가능한 가중치들 (I, FV, F)의 조합들을 출력함으로써 복수의 발열 제어 방법을 생성할 수 있다. 예를 들어, 쓰로틀 구성 유닛(131)은 발열 제어 방법으로서 제 1 방법만 사용하도록 하거나(즉, (I, FV, F)=(1, 0, 0)), 제 2 방법만 사용하도록 하거나(즉, (I, FV, F)=(0, 1, 0)), 제 3 방법만 사용하도록(즉, (I, FV, F)=(0, 0, 1)) 할 수 있다. 또한, 쓰로틀 구성 유닛(131)은 발열 제어 방법으로서 제 1 방법과 제 2 방법을 함께 사용하도록 하거나(예를 들어, (I, FV, F)=(0.5, 0.5, 0)), 제 1 방법과 제 3 방법을 함께 사용하도록(예를 들어, (I, FV, F)=(0.5, 0, 0.5)) 할 수 있다.
다시 말해 쓰로틀 구성 유닛(131)은, 최대 전력 예산에 기반하여, 발열 제어 방법으로서 복수의 코어들(Core 1~Core M)의 상태를 제어하는 방법(제 1 방법), 프로세서(110)로 제공되는 동작 전압(VP)의 레벨과 클럭 신호(CLK)의 주파수를 모두 제어하는 방법(제 2 방법), 그리고 클럭 신호(CLK)의 주파수만을 제어하는 방법(제 3 방법)을 따로 또는 함께 사용할 수 있는 다양한 가능한 조합들을 가중치들 (I, FV, F)의 조합으로서 출력할 수 있다.
쓰로틀 구성 유닛(131)은 생성된 가중치들 (I, FV, F)의 조합들을 최대 성능 검색 유닛(132)으로 제공할 수 있다. 최대 성능 검색 유닛(132)은 쓰로틀 구성 유닛(131)으로부터 제공되는 다양한 가중치들 (I, FV, F)의 조합들 중에서 프로세서(110)의 성능을 최대화할 수 있는 조합을 검색하고, 결정할 수 있다. 최대 성능 검색 유닛(132)은 결정된 가중치들 I, FV, F를 각각 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)으로 제공할 수 있다.
한편, 프로세서(110)의 냉각을 최대화하는 것을 우선으로 하여 동적 발열 제어를 수행하고자 하는 경우, 쓰로틀 변환 유닛(133)은 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수의 쌍에 대응하는 최대 전력 예산을 나타내는 룩-업 테이블에 기반하여 가중치들 (I, FV, F)의 조합들을 출력할 수 있다. 구체적으로, 쓰로틀 변환 유닛(133)은 각 전력에 대응하는 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수의 쌍들을 대응하는 가중치들 (I, FV, F)의 조합으로 변환함으로써 복수의 발열 제어 방법을 생성할 수 있다.
즉, 쓰로틀 변환 유닛(133)에 의해 출력되는 가중치들 (I, FV, F)에 기반하여 프로세서(110)의 발열을 제어하는 경우 최대 전력은, 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수를 프로세서(110)로 제공하였을 때의 최대 전력과 동일할 수 있다. 다시 말해, 쓰로틀 변환 유닛(133)에 의해 출력되는 가중치들 (I, FV, F)에 기반하여 동작하는 프로세서(110)의 성능은, 대응하는 동작 전압(VP) 및 클럭 신호(CLK)에 기반하여 동작하는 프로세서(110)의 성능과 동등(equivalent)할 수 있다.
쓰로틀 변환 유닛(133)은 변환된 가중치들 (I, FV, F)의 조합들을 최대 냉각 검색 유닛(134)으로 제공할 수 있다. 최대 냉각 검색 유닛(134)은 쓰로틀 변환 유닛(133)으로부터 제공되는 다양한 가중치들 (I, FV, F)의 조합들 중에서 프로세서(110)의 냉각을 최대화할 수 있는 조합을 검색하고, 결정할 수 있다. 최대 냉각 검색 유닛(134)은 결정된 가중치들 I, FV, F를 각각 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)으로 제공할 수 있다.
아이들 인젝팅 유닛(135)은 최대 성능 검색 유닛(132) 또는 최대 냉각 검색 유닛(134)으로부터 제 1 방법에 대한 가중치 I를 수신할 수 있다. 아이들 인젝팅 유닛(135)은 가중치 I에 기반하여, 복수의 코어들(Core 1~Core M) 각각의 상태를 결정할 수 있고, 전원 관리 유닛(140)의 출력(즉, 각 코어(Core 1~Core M)로 공급되는 전원들(PW1~PWM))을 제어하기 위한 제 1 제어 신호(CTRL1)를 생성할 수 있다.
주파수/전압 클램핑 유닛(136)은 최대 성능 검색 유닛(132) 또는 최대 냉각 검색 유닛(134)으로부터 제 2 방법에 대한 가중치 FV를 수신할 수 있다. 주파수/전압 클램핑 유닛(136)은 가중치 FV에 기반하여 프로세서(110)로 제공될 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수 각각의 최대값을 결정할 수 있고, PMIC(150)의 출력(즉, 프로세서(110)로 제공되는 동작 전압(VP))을 제어하기 위한 제 2 제어 신호(CTRL2) 및 클럭 관리 유닛(160)의 출력(즉, 프로세서(110)로 제공되는 클럭 신호(CLK))을 제어하기 위한 제 3 제어 신호(CTRL3)를 생성할 수 있다.
한편, 주파수 클램핑 유닛(137)은 최대 성능 검색 유닛(132) 또는 최대 냉각 검색 유닛(134)으로부터 제 3 방법에 대한 가중치 F를 수신할 수 있다. 주파수 클램핑 유닛(137)은 가중치 F에 기반하여 프로세서(110)로 제공될 클럭 신호(CLK)의 주파수의 최대값을 결정할 수 있고, 클럭 관리 유닛(160)의 출력(즉, 프로세서(110)로 제공되는 클럭 신호(CLK))을 제어하기 위한 제 3 제어 신호(CTRL3)를 생성할 수 있다.
전원 관리 유닛(140)은 제 1 제어 신호(CTRL1)에 응답하여 프로세서(110)의 복수의 코어들(Core 1~Core M) 각각으로 제공되는 전원들(PW1~PWM)의 레벨을 증가 또는 감소시킬 수 있다. 구체적으로, 기준 레벨 이상의 레벨을 갖는 전원을 제공받은 코어는 웨이크-업 상태로 진입할 수 있고, 기준 레벨보다 작은 레벨을 갖는 전원을 제공받은 코어는 아이들 상태로 진입할 수 있다. 예를 들어, 아이들 상태인 코어의 개수가 증가하는 경우 프로세서(110)의 발열은 감소할 수 있다.
PMIC(150)는 제 2 제어 신호(CTRL2)에 응답하여 프로세서(110)로 제공되는 동작 전압(VP)의 레벨을 증가 또는 감소시킬 수 있다. 예를 들어, 동작 전압(VP)의 레벨이 감소하는 경우 프로세서(110)의 발열은 감소할 수 있다. 클럭 관리 유닛(160)은 제 3 제어 신호(CTRL3)에 응답하여 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수를 증가 또는 감소시킬 수 있다. 예를 들어, 클럭 신호(CLK)의 주파수가 감소하는 경우 프로세서(110)의 발열은 감소할 수 있다.
비록 도 1의 시스템(100)은 하나의 프로세서(110)를 포함하는 것으로 도시되었으나, 본 개시는 이에 한정되지 않으며, 시스템(100)은 복수의 프로세서들을 포함할 수도 있다. 이 경우, 열 관리 유닛(120)은 프로세서들 각각으로부터 측정된 온도들과 관련된 정보에 기반하여, 각 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하여 대응하는 지시 신호를 컨트롤러(130)로 전송할 수 있고, 컨트롤러(130)는 상술한 방법에 따라 각 프로세서에 대해 동적 발열 제어를 수행할 수 있다.
도 2는 도 1의 프로세서(110)의 구성의 예를 나타낸다. 도 2의 프로세서(110a)는 8개의 코어들(Core 1~Core 8) 및 6개의 열 센서들(TS1~TS6)을 포함하는 멀티코어 프로세서로서 나타나 있다. 도 1을 참조하여 설명한 바와 같이, 코어들(Core 1~Core 8) 각각은 독립적으로 태스크를 수행할 수 있고, 각 코어(Core 1~Core 8)의 상태 또한 독립적일 수 있다.
도면에서 대형 코어는 굵은 실선으로, 중형 코어는 실선으로, 그리고 소형 코어는 점선으로 도시된다. 즉 도 2를 참조하면, 제 2 코어(Core 2)는 대형 코어이고, 제 1 코어(Core 1), 제 5 코어(Core 5), 및 제 8 코어(Core 8)는 중형 코어이고, 제 3 코어(Core 3), 제 4 코어(Core 4), 제 6 코어(Core 6), 및 제 7 코어(Core 7)는 소형 코어이다.
그리고, 제 1 열 센서(TS1), 제 2 열 센서(TS2), 제 4 열 센서(TS4), 및 제 6 열 센서(TS6)는 각각 제 1 코어(Core 1), 제 2 코어(Core 2), 제 5 코어(Core 5), 및 제 8 코어(Core 8) 내부에 위치하는 것으로 나타나 있고, 제 3 열 센서(TS3) 및 제 5 열 센서(TS5)는 각각 제 3 내지 제 4 코어(Core 3, Core 4) 사이, 및 제 6 내지 제 7 코어(Core 6, Core 7) 사이에 위치하는 것으로 나타나 있다.
도 1을 참조하여 설명한 바와 같이, 각 열 센서(TS1~TS6)는 대응하는 구성 요소(즉, 코어들(Core 1~Core 8)) 주위의 온도들(T1~T6)을 측정할 수 있고, 열 관리 유닛(120)으로 제공할 수 있다. 열 관리 유닛(120)은 온도들(T1~T6)과 관련된 정보에 기반하여 프로세서(110a)에 대해 발열 제어를 수행할 필요한지 여부를 판단할 수 있고, 도 1의 컨트롤러(130)로 지시 신호(IND)를 출력할 수 있다.
상술한 바와 같이 도 2의 프로세서(110a)는 도 1의 프로세서(110)의 구성의 예들 중 하나이므로, 본 개시는 이에 한정되지 않는다. 다른 실시 예에서 도 1의 프로세서(110)는 도 2에 나타난 프로세서(110a)와 다른 수의 코어들을 포함할 수 있고, 다른 수의 열 센서들을 포함할 수도 있으며, 코어들 각각의 종류 및 열 센서의 배치 또한 다를 수 있다.
도 3a는 온도들과 관련된 정보에 대응하는 최대 전력 예산을 저장하는 룩-업 테이블(LUT1)의 예를 나타내고, 도 3b는 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수의 쌍에 대응하는 최대 전력 예산을 저장하는 룩-업 테이블(LUT2)의 예를 나타낸다. 상술한 바와 같이, 최대 전력 예산(Max Power Budget)은 프로세서(예를 들어, 도 1의 110)가 다양한 기능들을 수행하기 위해 사용할 수 있는 최대 전력을 나타낼 수 있다. 이하 도 3a 내지 3b와 함께, 도 1을 참조하여 설명한다.
도 3a의 온도(T)는 프로세서(110)로부터 측정된 온도들(T1~TN)과 관련된 정보(즉, 프로세서로부터 측정된 온도들의 최고 온도, 최저 온도, 평균 온도 또는 온도들의 다양한 조합 중 하나)일 수 있다. 도 3a에 나타난 바와 같이, 온도(T)의 범위에 따라 프로세서의 최대 전력 예산은 P1~P6 중 하나로 미리 설정되어 룩-업 테이블(LUT1)에 저장될 수 있다. 온도(T)의 기준이 되는 온도들(TC1~TC5) 중에서는 TC5가 가장 높고 TC1이 가장 낮으며(즉, TC1<TC2<TC3<TC4<TC5), 전력들(P1~P6) 중에서는 P6이 가장 높고 P1이 가장 낮다(즉, P1<P2<P3<P4<P5<P6).
예를 들어, 프로세서(110)의 성능을 최대화하는 것을 우선으로 하여 동적 발열 제어를 수행하는 경우, 쓰로틀 구성 유닛(131)은 도 3a와 같은 룩-업 테이블(LUT1)을 참조하여 발열 제어를 통해 도달하고자 하는 목표 온도를 설정할 수 있고, 목표 온도에 대응하는 최대 전력 예산(구체적으로, 목표 온도가 포함된 범위에 대응하는 최대 전력 예산)에 기반하여 가중치들 (I, FV, F)의 조합을 생성할 수 있다.
그 후, 최대 성능 검색 유닛(132)은 생성된 가중치들 (I, FV, F)의 조합들 중 프로세서(110)의 성능을 최대화할 수 있는 조합을 선택할 수 있고, 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)을 통해 프로세서(110)의 발열을 제어할 수 있다.
즉, 룩-업 테이블(LUT1)을 참조하여 쓰로틀 구성 유닛(131) 및 최대 성능 검색 유닛(132)을 통해 동적 발열 제어를 수행하는 경우, 컨트롤러(130)는 프로세서(110)를 도달하고자 하는 온도로 냉각시키면서, 동시에 프로세서(110)의 성능을 최대화할 수 있다.
한편, 도 3b의 주파수 및 전압 레벨은 각각 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수 및 동작 전압(VP)의 레벨을 나타낼 수 있고, 주파수들(F1~F6) 중에서는 F6이 가장 높고 F1이 가장 낮으며(즉, F1<F2<F3<F4<F5<F6), 전압 레벨들(V1~V6) 중에서는 V6이 가장 높고 V1이 가장 낮다(즉, V1<V2<V3<V4<V5<V6). 도 3b에 나타난 바와 같이, 주파수 및 전압 레벨의 쌍(pair)에 따라, 프로세서의 최대 전력 예산은 P1~P6 중 하나로 미리 설정되어 룩-업 테이블(LUT2)에 저장될 수 있다. 도 3a의 룩-업 테이블(LUT1)과 마찬가지로, 전력들(P1~P6) 중에서는 P6이 가장 높고 P1이 가장 낮다(즉, P1<P2<P3<P4<P5<P6).
예를 들어, 프로세서(110)의 냉각을 최대화하는 것을 우선으로 하여 동적 발열 제어를 수행하는 경우, 쓰로틀 변환 유닛(133)은 도 3b와 같은 룩-업 테이블(LUT2)을 참조하여 발열 제어를 통해 도달하고자 하는 목표 전력을 설정할 수 있고, 대응하는 주파수 및 전압 레벨을 목표 전력과 동등하게 프로세서(110)를 동작시킬 수 있는 가중치들 (I, FV, F)의 조합으로 변환할 수 있다.
그 후, 최대 냉각 검색 유닛(134)은 변환된 가중치들 (I, FV, F)의 조합들 중 프로세서(110)의 냉각을 최대화할 수 있는 조합을 선택할 수 있고, 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)을 통해 프로세서(110)의 발열을 제어할 수 있다.
즉, 룩-업 테이블(LUT2)을 참조하여 쓰로틀 변환 유닛(133) 및 최대 냉각 검색 유닛(134)을 통해 동적 발열 제어를 수행하는 경우, 컨트롤러(130)는 프로세서(110)의 전력을 도달하고자 하는 목표 전력으로 유지하면서, 동시에 프로세서(110)의 냉각을 최대화할 수 있다.
도 4는 본 개시의 실시 예에 따른 동적 발열 제어 방법을 나타내는 흐름도이다. 이하 도 4와 함께, 도 1을 참조하여 설명한다.
단계 S110에서, 열 관리 유닛(120)은 프로세서(110)가 포함하는 복수의 열 센서들(TS1~TSN)로부터 측정된 온도들(T1~TN)에 기반하여 프로세서(110)에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단할 수 있다. 단계 S120에서, 열 관리 유닛(120)은 판단 결과에 기반하여 컨트롤러(130)의 동작을 활성화할 수 있는 지시 신호(IND)를 출력할 수 있다.
단계 S130에서, 컨트롤러(130)는 지시 신호(IND)에 응답하여, 프로세서(110)가 포함하는 복수의 코어들(Core 1~Core M) 각각의 상태(웨이크-업 또는 아이들)를 조절하는 제 1 방법, 프로세서(110)로 제공되는 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수를 조절하는 제 2 방법, 또는 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 프로세서(110)에 대해 발열 제어를 수행할 수 있다.
도 5는 프로세서의 성능을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다. 예를 들어, 도 5에 나타난 방법들은 도 4의 단계 S130를 수행하기 위한 세부적인 방법들일 수 있다. 이하 도 5와 함께, 도 1을 참조하여 설명한다.
단계 S210에서, 컨트롤러(130)의 쓰로틀 구성 유닛(131)은 온도들과 관련된 정보에 대응하는 프로세서의 최대 전력 예산을 저장하는 제 1 룩-업 테이블(예를 들어, 도 3a의 LUT1)을 참조하여 목표 온도를 설정할 수 있다.
단계 S220에서, 쓰로틀 구성 유닛(131)은 목표 온도에 기반하여, 복수의 코어들(Core 1~Core M)의 상태를 제어하는 방법(제 1 방법), 프로세서(110)로 제공되는 동작 전압(VP)의 레벨과 클럭 신호(CLK)의 주파수를 모두 제어하는 방법(제 2 방법), 그리고 클럭 신호(CLK)의 주파수만을 제어하는 방법(제 3 방법)에 대응하는 가중치들 (I, FV, F)의 조합들을 생성할 수 있고, 최대 성능 검색 유닛(132)으로 제공할 수 있다.
단계 S230에서, 최대 성능 검색 유닛(132)은 쓰로틀 구성 유닛(131)으로부터 제공되는 다양한 가중치들 (I, FV, F)의 조합들 중에서, 프로세서(110)의 성능을 최대화할 수 있는 조합을 결정하고 출력할 수 있다. 단계 S240에서, 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)은 결정된 조합에 기반하여 복수의 코어들(Core 1~Core M) 각각으로 제공되는 전원들(PW1~PWM)의 레벨, 프로세서(110)로 제공되는 동작 전압(VP)의 레벨, 또는 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수를 조절하기 위한 제어 신호들(CTRL1~CTRL3)을 출력할 수 있다.
도 6은 프로세서의 냉각을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다. 예를 들어, 도 6에 나타난 방법들은 도 4의 단계 S130를 수행하기 위한 세부적인 방법들일 수 있다. 이하 도 6과 함께, 도 1을 참조하여 설명한다.
단계 S310에서, 컨트롤러(130)의 쓰로틀 변환 유닛(133)은 프로세서(110)로 제공되는 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수의 쌍에 대응하는 최대 전력 예산을 저장하는 제 2 룩-업 테이블(예를 들어, 도 3b의 LUT2)을 참조하여 목표 전력을 설정할 수 있다.
단계 S320에서, 쓰로틀 변환 유닛(133)은 목표 전력에 대응하는 전압 레벨 및 주파수에 기반하여, 복수의 코어들(Core 1~Core M)의 상태를 제어하는 방법(제 1 방법), 프로세서(110)로 제공되는 동작 전압(VP)의 레벨과 클럭 신호(CLK)의 주파수를 모두 제어하는 방법(제 2 방법), 그리고 클럭 신호(CLK)의 주파수만을 제어하는 방법(제 3 방법)에 대응하는 가중치들 (I, FV, F)의 조합들을 생성할 수 있고, 최대 냉각 검색 유닛(134)으로 제공할 수 있다.
단계 S330에서, 최대 냉각 검색 유닛(134)은 쓰로틀 변환 유닛(133)으로부터 제공되는 다양한 가중치들 (I, FV, F)의 조합들 중에서, 프로세서(110)의 냉각을 최대화할 수 있는 조합을 결정하고 출력할 수 있다. 단계 S340에서, 아이들 인젝팅 유닛(135), 주파수/전압 클램핑 유닛(136), 및 주파수 클램핑 유닛(137)은 결정된 조합에 기반하여 복수의 코어들(Core 1~Core M) 각각으로 제공되는 전원들(PW1~PWM)의 레벨, 프로세서(110)로 제공되는 동작 전압(VP)의 레벨, 또는 프로세서(110)로 제공되는 클럭 신호(CLK)의 주파수를 조절하기 위한 제어 신호들(CTRL1~CTRL3)을 출력할 수 있다.
구체적으로, 도 5의 단계 S240 또는 도 6의 단계 S340에서, 아이들 인젝팅 유닛(135)은 가중치 I를 수신하여 복수의 코어들(Core 1~Core M) 각각의 상태를 결정할 수 있고, 전원들(PW1~PWM)의 레벨을 증가 또는 감소시키기 위한 제 1 제어 신호(CTRL1)을 생성할 수 있다.
또한, 도 5의 단계 S240 또는 도 6의 단계 S340에서, 주파수/전압 클램핑 유닛(136)은 가중치 FV를 수신하여 동작 전압(VP)의 레벨의 최대값과 클럭 신호(CLK)의 주파수의 최대값을 결정할 수 있고, 동작 전압(VP)의 레벨 및 클럭 신호(CLK)의 주파수를 증가 또는 감소시키기 위한 제 2 제어 신호(CTRL2) 및 제 3 제어 신호(CTRL3)를 생성할 수 있다.
마지막으로, 도 5의 단계 S240 또는 도 6의 단계 S340에서, 주파수 클램핑 유닛(137)은 가중치 F를 수신하여 클럭 신호(CLK)의 주파수의 최대값을 결정할 수 있고, 클럭 신호(CLK)의 주파수를 증가 또는 감소시키기 위한 제 3 제어 신호(CTRL3)를 생성할 수 있다.
도 7은 본 개시의 다른 실시 예에 따른 동적 발열 제어를 위한 시스템(200)의 구성을 나타내는 블록도이다. 도 1의 시스템(100)과 마찬가지로, 시스템(200)은 프로세서(210) 내부의 온도에 기반하여 열 관리 유닛(220) 및 컨트롤러(230)를 통해 전원 관리 유닛(260), PMIC(270), 및 클럭 관리 유닛(280)을 제어하여, 프로세서(210)의 발열을 동적으로 제어하도록 구현될 수 있다.
나아가, 도 7의 시스템(200)은 콘텐츠 인식 아이들 조정기(Contents Aware Idle Coordinator; CAIC)(240) 및 열 특성 인식 아이들 조정기(Thermal Characteristic Aware Idle Coordinator; TCAIC)(250)를 더 포함할 수 있다. CAIC(240) 및 TCAIC(250)를 더 포함하는 것을 제외하면 도 7의 시스템(200)은 도 1의 시스템(100)과 동일한 동작을 수행하므로, 이하 중복되는 설명은 생략하기로 한다.
CAIC(240)는 프로세서(110)에서 수행하고 있는 태스크의 콘텐츠와 관련된 콘텐츠 정보(CINFO)를 컨트롤러(230)로 제공할 수 있다. 예를 들어, 콘텐츠 정보(CINFO)는 태스크의 종류(예를 들어, 게임인지, 음악 또는 영상 재생인지 등), 태스크를 수행하는 데 필요한 최소 주파수, 태스크의 듀티 시간(duty time), 태스크를 수행하는 데 필요한 최소 전력 등을 포함할 수 있다.
이러한 콘텐츠 정보(CINFO)는 최대 성능 검색 유닛(232) 또는 최대 냉각 검색 유닛(234)에 의해 출력되는 가중치들 (I, FV, F)에 영향을 미칠 수 있다. 예를 들어, 가중치 FV 또는 F에 의해 결정되는 클럭 신호(CLK)의 주파수가, 태스크를 수행하는 데 필요한 최소 주파수보다 작은 경우, 가중치 FV 또는 F는 클럭 신호(CLK)의 주파수가 최소 주파수보다 더 큰 값을 가질 수 있도록 조절될 수 있다.
또 다른 예로서, 태스크의 듀티 시간이 짧고, 짧은 듀티 시간이 태스크를 수행하는 데 중요한 요소인 경우, 클럭 신호(CLK)의 주파수를 조절하는 것은 실제 태스크의 수행에 영향을 미칠 수 있다. 따라서, 이 경우 클럭 신호(CLK)의 주파수를 조절하기보다는 코어들(Core 1~Core M) 각각의 상태(웨이크-업 또는 아이들)를 조절함으로써(즉, 가중치 I를 조절함으로써) 프로세서(210)의 발열을 제어하는 것이 더 효과적일 수 있다.
반면, 태스크가 끊김 없이 연속적으로 수행되어야 하는 경우, 코어들(Core 1~Core M) 각각의 상태를 웨이크-업 상태에서 아이들 상태로 조절하는 것이 실제 태스크의 수행에 영향을 미칠 수 있다. 따라서, 이 경우 클럭 신호(CLK)의 주파수 또는 동작 전압(VP)의 레벨을 조절함으로써(즉, 가중치 FV 또는 F를 조절함으로써) 프로세서(210)의 발열을 제어하는 것이 더 효과적일 수 있다.
TCAIC(250)는 시스템(200)이 구현된 기판(printed circuit board; PCB), 시스템 온 칩(SoC), 및 시스템(200)이 포함하는 반도체 장치들의 열 특성(thermal characteristic)을 포함하는 열 특성 정보(TCINFO)를 컨트롤러(230)로 제공할 수 있다.
예를 들어, 프로세서(210)의 각 코어(Core 1~Core M)가 웨이크-업 상태에서 아이들 상태에 진입하는 데 걸리는 시간에 따른 온도 변화는 열 특성 또는 PCB의 구성에 따라 달라질 수 있다. 따라서, 가중치 I는 상술한 콘텐츠 정보(CINFO)뿐만 아니라, TCAIC(250)로부터 제공받은 열 특성 정보(TCINFO)에 기반하여 추가로 조절될 수 있다.
상술한 콘텐츠 정보(CINFO) 또는 열 특성 정보(TCINFO)에 기반한 가중치들의 조절은, 최대 성능 검색 유닛(232) 또는 최대 냉각 검색 유닛(234)에 의해 가중치들 (I, FV, F)의 조합이 결정된 후 추가로 수행될 수 있다. 구체적으로, 전원들(PW1~PWM), 동작 전압(VP)의 레벨, 및 클럭 신호(CLK)의 주파수 중 어느 하나가 콘텐츠 정보(CINFO) 또는 열 특성 정보(TCINFO)에 따라 수정될 필요가 있는 경우, 컨트롤러(230)는 각 가중치 I, FV, F를 조절하여 새로운 (I, FV, F)의 조합을 결정할 수 있고, 아이들 인젝팅 유닛(235), 주파수/전압 클램핑 유닛(236), 또는 주파수 클램핑 유닛(237)은 새로운 제어 신호들(CTRL1~CTRL3)을 출력할 수 있다.
도 8은 본 개시의 다른 실시 예에 따른 프로세서의 성능을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다. 이하 도 8과 함께, 도 7을 참조하여 설명한다. 도 8의 단계 S410, 단계 S420, 단계 S430은 각각 도 5의 단계 S210, 단계 S220, 단계 S230과 동일하므로 중복되는 설명은 생략하기로 한다.
단계 S440에서, 컨트롤러(230)는 CAIC(240)로부터 제공받은 콘텐츠 정보(CINFO) 및 TCAIC(250)로부터 제공받은 열 특성 정보(TCINFO)에 기반하여, 각 가중치 I, FV, F를 조절할 수 있고, 단계 S450에서 아이들 인젝팅 유닛(235), 주파수/전압 클램핑 유닛(236), 및 주파수 클램핑 유닛(237)은 조절된 가중치 (I, FV, F)의 조합에 기반하여 전원들(PW1~PWM)의 레벨, 동작 전압(VP)의 레벨, 또는 클럭 신호(CLK)의 주파수를 조절하기 위한 제어 신호들(CTRL1~CTRL3)을 출력할 수 있다.
도 9는 본 개시의 다른 실시 예에 따른 프로세서의 냉각을 최대화하는 것을 우선으로 하는 동적 발열 제어 방법을 나타내는 흐름도이다. 이하 도 9와 함께, 도 7을 참조하여 설명한다. 도 9의 단계 S510, 단계 S520, 단계 S530은 각각 도 6의 단계 S310, 단계 S320, 단계 S330과 동일하므로 중복되는 설명은 생략하기로 한다.
도 8의 단계 S440과 마찬가지로, 단계 S540에서, 컨트롤러(230)는 CAIC(240)로부터 제공받은 콘텐츠 정보(CINFO) 및 TCAIC(250)로부터 제공받은 열 특성 정보(TCINFO)에 기반하여, 각 가중치 I, FV, F를 조절할 수 있고, 단계 S550에서 아이들 인젝팅 유닛(235), 주파수/전압 클램핑 유닛(236), 및 주파수 클램핑 유닛(237)은 조절된 가중치 (I, FV, F)의 조합에 기반하여 전원들(PW1~PWM)의 레벨, 동작 전압(VP)의 레벨, 또는 클럭 신호(CLK)의 주파수를 조절하기 위한 제어 신호들(CTRL1~CTRL3)을 출력할 수 있다.
도 8 및 도 9의 단계 S450 및 단계 S550은, 상술한 도 5 및 도 6의 단계 S240 및 단계 S340과 마찬가지로 수행될 수 있으므로, 아이들 인젝팅 유닛(235), 주파수/전압 클램핑 유닛(236), 및 주파수 클램핑 유닛(237)의 동작과 관련된 중복되는 설명은 생략하기로 한다.
상술된 내용은 본 발명을 실시하기 위한 구체적인 실시 예들이다. 본 발명은 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 발명은 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 발명의 범위는 상술된 실시 예들에 국한되어 정해져서는 안 되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
110: 프로세서
120: 열 관리 유닛
130: 컨트롤러
131: 쓰로틀 구성 유닛
132: 최대 성능 검색 유닛
133: 쓰로틀 변환 유닛
134: 최대 냉각 검색 유닛
135: 아이들 인젝팅 유닛
136: 주파수/전압 클램핑 유닛
137: 주파수 클램핑 유닛
140: 전원 관리 유닛
150: PMIC
160: 클럭 관리 유닛

Claims (10)

  1. 프로세서가 포함하는 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 열 관리 유닛; 및
    상기 지시 신호에 응답하여, 상기 프로세서가 포함하는 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 컨트롤러를 포함하되,
    상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나인 동적 발열 제어를 위한 장치.
  2. 제 1 항에 있어서,
    상기 컨트롤러는:
    상기 온도들과 관련된 정보에 대응하는 상기 프로세서의 최대 전력 예산을 저장하는 제 1 룩-업 테이블; 및
    상기 동작 전압의 레벨 및 상기 클럭 신호의 주파수의 쌍에 대응하는 상기 프로세서의 최대 전력 예산을 저장하는 제 2 룩-업 테이블을 포함하고,
    상기 온도들과 관련된 정보는 상기 온도들의 최고 온도, 최저 온도, 또는 평균 온도 중 하나인 동적 발열 제어를 위한 장치.
  3. 제 2 항에 있어서,
    상기 컨트롤러는:
    상기 제 1 룩-업 테이블을 참조하여 목표 온도를 설정하고, 상기 목표 온도에 기반하여, 상기 제 1 방법, 상기 제 2 방법, 및 상기 제 3 방법에 각각 대응하는 제 1 가중치, 제 2 가중치, 및 제 3 가중치로 구성되는 하나 이상의 제 1 조합을 생성하는 쓰로틀 구성 유닛;
    상기 하나 이상의 제 1 조합 중 상기 프로세서의 성능을 최대화하는 제 2 조합을 결정하여 출력하는 최대 성능 검색 유닛;
    상기 제 2 조합의 제 1 가중치를 수신하여 상기 복수의 코어들 각각의 상태를 결정하고, 상기 복수의 코어들 각각으로 제공되는 전원들의 레벨을 증가 또는 감소시키는 제 1 제어 신호를 생성하는 아이들 인젝팅 유닛;
    상기 제 2 조합의 제 2 가중치를 수신하여 상기 동작 전압의 레벨의 최대값과 상기 클럭 신호의 주파수의 최대값을 결정하고, 상기 프로세서로 제공되는 상기 동작 전압의 상기 레벨을 증가 또는 감소시키는 제 2 제어 신호, 및 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수를 증가 또는 감소시키는 제 3 제어 신호를 생성하는 주파수/전압 클램핑 유닛; 및
    상기 제 2 조합의 제 3 가중치를 수신하여 상기 클럭 신호의 주파수의 최대값을 결정하고, 상기 제 3 제어 신호를 생성하는 주파수 클램핑 유닛을 포함하는 동적 발열 제어를 위한 장치.
  4. 제 3 항에 있어서,
    상기 장치는:
    상기 프로세서가 수행하는 태스크의 콘텐츠와 관련된 콘텐츠 정보를 상기 컨트롤러로 제공하는 콘텐츠 인식 아이들 조정기(Contents Aware Idle Coordinator; CAIC); 및
    상기 장치가 구현된 기판 또는 시스템 온 칩의 열 특성과 관련된 열 특성 정보를 상기 컨트롤러로 제공하는 열 특성 인식 아이들 조정기(Thermal Characteristic Aware Idle Coordinator; TCAIC)를 더 포함하고,
    상기 컨트롤러는 상기 콘텐츠 정보 또는 상기 열 특성 정보에 기반하여 상기 제 2 집합의 상기 제 1 가중치, 상기 제 2 가중치, 및 상기 제 3 가중치 중 적어도 하나를 조절하는 동적 발열 제어를 위한 장치.
  5. 제 4 항에 있어서,
    상기 콘텐츠 정보는 상기 태스크의 종류, 상기 태스크를 수행하는 데 필요한 상기 클럭 신호의 최소 주파수, 상기 태스크의 듀티 시간(duty time)을 포함하는 동적 발열 제어를 위한 장치.
  6. 제 2 항에 있어서,
    상기 컨트롤러는:
    상기 제 2 룩-업 테이블을 참조하여 목표 전력을 설정하고, 상기 목표 전력에 대응하는 주파수 및 전압 레벨에 기반하여, 상기 제 1 방법, 상기 제 2 방법, 및 상기 제 3 방법에 각각 대응하는 제 1 가중치, 제 2 가중치, 및 제 3 가중치로 구성되는 하나 이상의 제 1 조합을 생성하는 쓰로틀 변환 유닛;
    상기 하나 이상의 제 1 조합 중 상기 프로세서의 냉각을 최대화하는 제 2 조합을 결정하여 출력하는 최대 냉각 검색 유닛;
    상기 제 2 조합의 제 1 가중치를 수신하여 상기 복수의 코어들 각각의 상태를 결정하고, 상기 복수의 코어들 각각으로 제공되는 전원들의 레벨을 증가 또는 감소시키는 제 1 제어 신호를 생성하는 아이들 인젝팅 유닛;
    상기 제 2 조합의 제 2 가중치를 수신하여 상기 동작 전압의 레벨의 최대값과 상기 클럭 신호의 주파수의 최대값을 결정하고, 상기 프로세서로 제공되는 상기 동작 전압의 상기 레벨을 증가 또는 감소시키는 제 2 제어 신호, 및 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수를 증가 또는 감소시키는 제 3 제어 신호를 생성하는 주파수/전압 클램핑 유닛; 및
    상기 제 2 조합의 제 3 가중치를 수신하여 상기 클럭 신호의 주파수의 최대값을 결정하고, 상기 제 3 제어 신호를 생성하는 주파수 클램핑 유닛을 포함하는 동적 발열 제어를 위한 장치.
  7. 제 6 항에 있어서,
    상기 장치는:
    상기 프로세서가 수행하는 태스크의 콘텐츠와 관련된 콘텐츠 정보를 상기 컨트롤러로 제공하는 콘텐츠 인식 아이들 조정기(Contents Aware Idle Coordinator; CAIC); 및
    상기 장치가 구현된 기판 또는 시스템 온 칩의 열 특성과 관련된 열 특성 정보를 상기 컨트롤러로 제공하는 열 특성 인식 아이들 조정기(Thermal Characteristic Aware Idle Coordinator; TCAIC)를 더 포함하고,
    상기 컨트롤러는 상기 콘텐츠 정보 또는 상기 열 특성 정보에 기반하여 상기 제 2 집합의 상기 제 1 가중치, 상기 제 2 가중치, 및 상기 제 3 가중치 중 적어도 하나를 조절하는 동적 발열 제어를 위한 장치.
  8. 제 7 항에 있어서,
    상기 콘텐츠 정보는 상기 태스크의 종류, 상기 태스크를 수행하는 데 필요한 상기 클럭 신호의 최소 주파수, 상기 태스크의 듀티 시간(duty time)을 포함하는 동적 발열 제어를 위한 장치.
  9. 프로세서가 포함하는 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하는 단계;
    지시 신호를 출력하는 단계; 및
    상기 지시 신호에 응답하여, 상기 프로세서가 포함하는 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 프로세서로 제공되는 동작 전압의 레벨 및 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 프로세서로 제공되는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 단계를 포함하되,
    상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나인 동적 발열 제어를 위한 방법.
  10. 복수의 코어들 및 복수의 열 센서들을 포함하는 프로세서;
    상기 복수의 열 센서들로부터 측정된 온도들에 기반하여 상기 프로세서에 대해 발열 제어를 수행할 필요가 있는지 여부를 판단하고, 지시 신호를 출력하는 열 관리 유닛;
    상기 복수의 코어들 각각으로 전원들을 제공하는 전원 관리 유닛;
    상기 프로세서로 동작 전압을 제공하는 PMIC;
    상기 프로세서로 클럭 신호를 제공하는 클럭 관리 유닛; 및
    상기 지시 신호에 응답하여, 상기 복수의 코어들 각각의 상태를 조절하는 제 1 방법, 상기 동작 전압의 레벨 및 상기 클럭 신호의 주파수를 조절하는 제 2 방법, 또는 상기 클럭 신호의 상기 주파수만을 조절하는 제 3 방법 중 적어도 하나를 사용하여 상기 프로세서에 대해 발열 제어를 수행하는 컨트롤러를 포함하되,
    상기 복수의 코어들 각각의 상태는 웨이크-업(wake-up) 상태 또는 아이들(idle) 상태 중 하나인 모바일 장치.
KR1020210120607A 2021-09-09 2021-09-09 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법 KR20230037757A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210120607A KR20230037757A (ko) 2021-09-09 2021-09-09 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법
US17/718,699 US11921554B2 (en) 2021-09-09 2022-04-12 Apparatus and method for dynamic thermal management using frequency clamping and idle injection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210120607A KR20230037757A (ko) 2021-09-09 2021-09-09 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230037757A true KR20230037757A (ko) 2023-03-17

Family

ID=85385503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210120607A KR20230037757A (ko) 2021-09-09 2021-09-09 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법

Country Status (2)

Country Link
US (1) US11921554B2 (ko)
KR (1) KR20230037757A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230106101A1 (en) * 2021-10-02 2023-04-06 Innogrit Technologies Co., Ltd. Adaptive thermal calibration for throttling prevention

Family Cites Families (20)

* 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
US7086058B2 (en) 2002-06-06 2006-08-01 International Business Machines Corporation Method and apparatus to eliminate processor core hot spots
US6908227B2 (en) * 2002-08-23 2005-06-21 Intel Corporation Apparatus for thermal management of multiple core microprocessors
US7451332B2 (en) * 2003-08-15 2008-11-11 Apple Inc. Methods and apparatuses for controlling the temperature of a data processing system
US8237386B2 (en) 2003-08-15 2012-08-07 Apple Inc. Methods and apparatuses for operating a data processing system
US7353409B2 (en) 2004-06-29 2008-04-01 International Business Machines Corporation System and method to maintain data processing system operation in degraded system cooling condition
KR20060017333A (ko) 2004-08-20 2006-02-23 삼성전자주식회사 컴퓨터 시스템
US7878016B2 (en) * 2004-12-30 2011-02-01 Intel Corporation Device and method for on-die temperature measurement
US8620235B2 (en) * 2008-05-23 2013-12-31 Qualcomm Incorporated Thermal management for data modules
US9063713B2 (en) 2008-10-28 2015-06-23 Apple Inc. Graphics controllers with increased thermal management granularity
US8786449B1 (en) * 2009-12-16 2014-07-22 Applied Micro Circuits Corporation System-on-chip with thermal management core
US8489745B2 (en) 2010-02-26 2013-07-16 International Business Machines Corporation Optimizing power consumption by dynamic workload adjustment
KR101261354B1 (ko) 2012-02-29 2013-05-07 국민대학교산학협력단 가상화 기반의 cpu 쿨링 제어 방법 및 이를 수행하는 컴퓨팅 장치
US9329670B2 (en) 2012-06-05 2016-05-03 International Business Machines Corporation Predicting energy savings
CN103823716A (zh) 2012-09-21 2014-05-28 宏达国际电子股份有限公司 具多重中央处理单元的电子装置及其效能管理方法
US9823673B2 (en) 2014-04-08 2017-11-21 Qualcomm Incorporated Energy efficiency aware thermal management in a multi-processor system on a chip based on monitored processing component current draw
US9785209B2 (en) * 2015-03-31 2017-10-10 Qualcomm Incorporated Thermal management in a computing device based on workload detection
US10031180B2 (en) 2015-07-22 2018-07-24 International Business Machines Corporation Leakage power characterization at high temperatures for an integrated circuit
US10037258B2 (en) * 2016-02-01 2018-07-31 Qualcomm Incorporated System and method for intelligent thermal management using dynamic performance floors in a portable computing device
US20210109587A1 (en) 2020-12-21 2021-04-15 Intel Corporation Power and thermal management in a solid state drive

Also Published As

Publication number Publication date
US20230071918A1 (en) 2023-03-09
US11921554B2 (en) 2024-03-05

Similar Documents

Publication Publication Date Title
US7343505B2 (en) Method and apparatus for thermal control of electronic components
US20140091624A1 (en) Method for controlling voltage based on temperature and terminal supporting the same
US9377830B2 (en) Data processing device with power management unit and portable device having the same
US20070162160A1 (en) Fan speed control methods
JP4808108B2 (ja) プロセッサシステム
US10671132B2 (en) IHS component cooling system
US20080244294A1 (en) Dynamic power reduction
US20100268968A1 (en) Managing processor power-performance states
US10234919B2 (en) Accessory-based power distribution
US20090158061A1 (en) Method and apparatus for on-demand power management
JP2013239178A (ja) 消費電力を制御する方法と装置
US20080136397A1 (en) Operating integrated circuit logic blocks at independent voltages with single voltage supply
US10560022B2 (en) Setting operating points for circuits in an integrated circuit chip using an integrated voltage regulator power loss model
US20060294401A1 (en) Power management of multiple processors
US10474209B2 (en) Integrated circuit for implementing a cooling algorithm and a mobile device including the same
JP2009522688A (ja) 独立周波数及び/又は電圧で集積回路の構成要素を動作させるシステムならびに方法
JPH08211961A (ja) マイクロプロセッサをベースとするコンピュータシステムのための可変周波数クロック制御装置
KR20070052379A (ko) 중앙처리장치의 발열 제어 장치 및 방법
KR20230037757A (ko) 주파수 클램핑 및 아이들 인젝션을 이용한 동적 발열 제어를 위한 장치 및 방법
KR20100054669A (ko) 휴대용 단말기 및 그의 열관리 방법
JP4485370B2 (ja) 並列計算装置
CN117642710A (zh) 用于响应于电压下降在超频期间启用时钟拉伸的系统和方法
KR20150060186A (ko) 반도체 집적 회로의 소비 전력 계산 방법 및 소비 전력 계산 회로
EP3330853B1 (en) Method and system for controlling operation unit, and computer storage medium
US11934286B2 (en) Subsystem power range configuration based on workload profile