KR20190068156A - 그래픽 처리 장치 및 이의 동작 방법 - Google Patents

그래픽 처리 장치 및 이의 동작 방법 Download PDF

Info

Publication number
KR20190068156A
KR20190068156A KR1020170168269A KR20170168269A KR20190068156A KR 20190068156 A KR20190068156 A KR 20190068156A KR 1020170168269 A KR1020170168269 A KR 1020170168269A KR 20170168269 A KR20170168269 A KR 20170168269A KR 20190068156 A KR20190068156 A KR 20190068156A
Authority
KR
South Korea
Prior art keywords
clock frequency
cores
temperature
core
power
Prior art date
Application number
KR1020170168269A
Other languages
English (en)
Other versions
KR102603299B1 (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 한국전자통신연구원
Priority to KR1020170168269A priority Critical patent/KR102603299B1/ko
Priority to US16/165,878 priority patent/US11086385B2/en
Publication of KR20190068156A publication Critical patent/KR20190068156A/ko
Application granted granted Critical
Publication of KR102603299B1 publication Critical patent/KR102603299B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable 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/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/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking 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
    • Y02D10/24

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)

Abstract

본 발명은 그래픽 처리 장치 및 이의 동작 방법에 관한 것이다. 본 발명의 실시예에 따른 그래픽 처리 장치는 복수의 코어들, 온도 모니터링 및 소팅 회로, 및 컨트롤러를 포함한다. 복수의 코어들의 지연 시간은 온도의 증가에 따라 감소한다. 온도 모니터링 및 소팅 회로는 복수의 코어들 각각의 온도를 모니터링한다. 컨트롤러는 모니터링된 복수의 코어들 각각의 온도 중 가장 낮은 온도를 갖는 코어의 구동 가능한 클럭 주파수에 기초하여 복수의 코어들의 클럭 주파수 및 전력 공급을 제어한다. 본 발명에 따르면, 온도 역전 효과를 이용하여 코어의 동작을 제어함으로써, 전력 소모가 감소되고, 그래픽 처리 장치의 성능이 유지될 수 있다.

Description

그래픽 처리 장치 및 이의 동작 방법{GRAPHICS PROCESSING UNIT AND OPERATING METHOD OF THE SAME}
본 발명은 그래픽 처리 장치 및 이의 동작 방법에 관한 것으로, 좀 더 상세하게는 온도 역전 효과(Temperature-Effect-Inversion; TEI)를 이용한 멀티 코어의 관리에 관한 것이다.
그래픽 처리 장치(Graphics Processing Unit, GPU)는 영상 정보를 처리하여 디스플레이에 출력하도록 설계된 전자 회로이다. 그래픽 처리 장치는 임베디드 시스템, 단말기, 개인용 컴퓨터, 워크 스테이션, 또는 비디오 게임 콘솔 장치 등 다양한 전자 장치에 구비될 수 있다. 그래픽 처리 장치는 다수의 스레드들을 병렬로 처리하는 멀티 스레딩(Multi-threading) 방식을 이용하여 영상 정보를 빠르고 효과적으로 처리할 수 있다. 이를 위하여, 그래픽 처리 장치는 복수의 코어들을 포함하는 멀티 프로세서(Multiprocessor)로 구현될 수 있다.
최근의 그래픽 처리 장치는 영상 처리뿐만 아니라, CPU가 수행하는 응용 프로그램들의 계산과 같은 범용 목적을 위한 GPGPU(General-Purpose computing on Graphics Processing Unit)로 이용될 수 있다. 그래픽 처리 장치는 집적화로 인한 성능의 발전과 GPGPU의 등장에 따라 컴퓨터 하드웨어의 필수적인 구성요소로 인식되고 있다. 다만, 그래픽 처리 장치의 집적화는 높은 전력 밀도(power density)를 발생시킬 수 있다. 따라서, 배터리 등과 같은 제한된 전력 공급에 따른 동작의 효율성을 확보하기 위한 요구가 제기되고 있다. 그리고, 전력 관리 및 그래픽 처리 장치의 성능을 동시에 확보할 수 있는 방법론에 대한 요구가 제기되고 있다.
본 발명은 온도 역전 효과를 이용하여 전력을 효율적으로 관리하되, 정보 처리의 신속성을 확보할 수 있는 그래픽 처리 장치 및 이의 동작 방법을 제공한다.
본 발명의 실시예에 따른 그래픽 처리 장치는 복수의 코어들, 온도 모니터링 및 소팅 회로, 및 컨트롤러를 포함한다. 복수의 코어들은 온도의 증가에 따라 입력과 출력 사이의 지연 시간이 감소하도록 구현된다. 복수의 코어들 각각은 코어의 온도를 센싱하는 온도 센서를 포함할 수 있다. 그래픽 처리 장치는 복수의 코어들 각각에 연결되어 코어에 전력을 전달하거나 차단시키기 위한 복수의 트랜지스터들을 더 포함할 수 있다. 온도 모니터링 및 소팅 회로는 복수의 코어들 각각의 온도를 모니터링한다.
컨트롤러는 모니터링된 복수의 코어들 각각의 온도 중 가장 낮은 온도를 갖는 코어의 구동 가능한 클럭 주파수에 기초하여 복수의 코어들의 클럭 주파수 및 전력 공급을 제어한다. 컨트롤러는 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수와 현재의 동작 클럭 주파수를 비교한다. 컨트롤러는 비교 결과에 따라 동작 클럭 주파수를 조절하고, 전력이 공급되는 코어를 결정할 수 있다.
일례로, 컨트롤러는 최대 클럭 주파수가 동작 클럭 주파수보다 기준 값의 배수 이상 높은 경우, 동작 클럭 주파수를 기준 값의 배수로 증가시키고, 복수의 코어들 중 기준 값의 역수만큼의 코어들에 전력을 공급할 수 있다. 컨트롤러는 최대 클럭 주파수가 동작 클럭 주파수보다 낮은 경우, 동작 주파수를 낮추고 전력이 공급되는 코어의 개수를 증가시킬 수 있다. 전력이 공급되는 코어들은 복수의 코어들 각각의 온도에 기초하여 결정될 수 있다.
컨트롤러는 주파수 컨트롤러 및 스레드 할당 회로를 포함할 수 있다. 주파수 컨트롤러는 룩 업 테이블을 참조하여 동작 클럭 주파수를 조절할 수 있다. 스레드 할당 회로는 룩 업 테이블을 참조하여 전력이 공급되는 코어에 스레드를 할당할 수 있다.
본 발명의 실시예에 따른 그래픽 처리 장치의 동작 방법은 온도의 증가에 따라 입력과 출력 사이의 지연 시간이 감소하는 복수의 코어들 각각의 온도를 센싱하는 단계, 복수의 코어들 각각의 온도 중 가장 낮은 온도를 갖는 코어의 최대 클럭 주파수와 동작 클럭 주파수를 비교하는 단계, 비교 결과에 기초하여 동작 클럭 주파수를 조절하는 단계, 및 비교 결과에 기초하여 전력이 제공되는 코어를 결정하는 단계를 포함한다. 최대 클럭 주파수는 룩 업 테이블에서 검색될 수 있다.
본 발명의 실시예에 따른 그래픽 처리 장치 및 이의 동작 방법은 온도 역전 효과를 이용한 코어의 동작을 제어함으로써, 전력 소모를 저감시키면서 그래픽 처리 장치의 성능을 유지시킬 수 있다.
도 1은 본 발명의 실시예에 따른 그래픽 처리 장치의 블록도이다.
도 2는 도 1의 코어의 예시적인 구성을 도시하는 블록도이다.
도 3은 도 1에 도시된 코어의 온도 역전 효과를 설명하기 위한 그래프이다.
도 4는 도 1에 도시된 코어의 온도 및 클럭 주파수에 따른 소비 전력을 설명하기 위한 그래프이다.
도 5는 도 1의 컨트롤러의 예시적인 구성을 도시하는 블록도이다.
도 6 및 도 7은 본 발명의 실시예에 따른 그래픽 처리 장치의 동작 방법에 대한 순서도이다.
아래에서는, 본 발명의 기술 분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있을 정도로, 본 발명의 실시 예들이 명확하고 상세하게 기재된다.
도 1은 본 발명의 실시예에 따른 그래픽 처리 장치의 블록도이다. 도 1을 참조하면, 그래픽 처리 장치(100)는 실행 유닛(110), 온도 모니터링 및 소팅 회로(120), 및 컨트롤러(130)를 포함할 수 있다. 실행 유닛(110)은 복수의 코어들(C0~Cn-1)을 포함할 수 있다. 도시되지 않았으나, 실행 유닛(110)은 삼각 함수 연산 또는 제곱근 연산과 같은 명령어를 실행하기 위한 복수의 특수 기능 유닛들(Special Functions Units)을 더 포함할 수 있다. 실행 유닛(110)은 스토어 명령어를 실행하여 데이터를 메모리(미도시)에 저장하거나, 로드 명령어를 실행하여 데이터를 메모리(미도시)로부터 읽는 복수의 로드/스토어 유닛들을 더 포함할 수 있다.
실행 유닛(110)은 복수의 코어들(C0~Cn-1)을 이용하여 곱셈 연산 또는 덧셈 연산과 같은 논리 연산을 수행할 수 있다. 예를 들어, 복수의 코어들(C0~Cn-1)은 부동 소수점 곱셈 연산을 수행할 수 있다. 실행 유닛(110)은 복수의 코어들(C0~Cn-1)을 이용하여 복수의 스레드들을 처리할 수 있다. 예를 들어, 실행 유닛(110)은 한 사이클 당 n 개의 스레드들을 처리할 수 있다. 복수의 코어들(C0~Cn-1)은 파이프라인 방식을 이용하여 복수의 스레드들을 병렬로 처리할 수 있다. 복수의 코어들(C0~Cn-1)은 동일한 클럭 주파수에 기초하여 할당된 스레드들을 처리한다. 복수의 코어들(C0~Cn-1)의 스레드들에 대한 처리 속도는 클럭 주파수에 의하여 결정될 수 있다.
복수의 코어들(C0~Cn-1)은 온도의 증가에 따라 입력과 출력 사이의 지연 시간을 갖는다. 지연 시간은 복수의 코어들(C0~Cn-1)의 회로 내부로 신호가 전파될 때, 발생되는 전파 지연(Propagation delay) 시간일 수 있다. 즉, 복수의 코어들(C0~Cn-1)은 온도 역전 효과(Temperature-Effect Inversion, TEI)의 특성을 갖도록 구현될 수 있다. 복수의 코어들(C0~Cn-1)은 핀펫 (FinFET), 모스펫 (MOSFET), 멀티 게이트 트랜지스터 (또는 듀얼 게이트 트랜지스터)와 같은 다양한 반도체 소자들로 구성될 수 있다. 또한, 복수의 코어들(C0~Cn-1)은 초저전압(Ultra-Low Voltage, ULV)에서 동작할 수 있다. 예를 들어, 초저전압은 약 1V 이하의 구동 전압을 의미할 수 있다. 상술된 조건 하에서 온도의 증가에 따라, 복수의 코어들(C0~Cn-1)의 구동 가능한 속도는 증가할 수 있다.
복수의 코어들(C0~Cn-1) 각각은 스레드를 처리하는 과정에서 서로 다른 온도를 나타낼 수 있다. 예를 들어, 제1 코어(C1)가 제2 코어(C2)보다 많은 연산을 수행하여 높은 온도를 나타낼 수 있다. 이 경우, 온도 역전 효과에 기초하여 제1 코어(C1)의 구동 가능한 속도는 제2 코어(C2)의 구동 가능한 속도보다 높을 수 있다. 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 갖는 코어의 구동 가능한 속도는 가장 느릴 수 있다. 가장 낮은 온도를 갖는 코어의 구동 가능한 속도가 현재의 실행 유닛(110)의 구동 속도보다 빠른 경우, 클럭 주파수의 증가가 가능하다. 이 경우, 복수의 코어들(C0~Cn-1) 각각의 스레드 처리 속도가 향상될 수 있다.
온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 각각의 온도를 모니터링한다. 이를 위하여, 온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 각각에 연결될 수 있다. 실행 유닛(110)의 온도를 증가시키기 위하여, 가장 낮은 온도를 갖는 코어의 검출이 요구될 수 있다. 온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 갖는 코어의 온도를 검출할 수 있다. 다만, 이에 제한되지 않고, 가장 낮은 온도를 갖는 코어는 컨트롤러(130)에서 판단될 수 있다.
온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 각각의 온도를 모니터링하여 코어 온도 정보(CT)를 생성할 수 있다. 코어 온도 정보(CT)는 복수의 코어들(C0~Cn-1) 각각의 온도 정보를 포함할 수 있다. 온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 각각의 온도 정보를 온도 순서대로 소팅(sorting)할 수 있다. 가장 낮은 온도를 갖는 코어는 온도 모니터링 및 소팅 회로(120) 또는 컨트롤러(130)에서 판단될 수 있다. 또는, 코어 온도 정보(CT)는 복수의 코어들(C0~Cn-1)의 온도를 소팅한 결과 가장 낮은 온도를 갖는 코어의 온도에 대한 정보일 수 있다. 이 경우, 컨트롤러(130)는 코어 온도 정보(CT)에 기초하여 클럭 주파수를 조절할 수 있다.
컨트롤러(130)는 실행 유닛(110)의 전반적인 동작을 제어한다. 컨트롤러(130)는 복수의 코어들(C0~Cn-1)의 동작 속도, 스레드 분배, 및 전력 공급을 제어할 수 있다. 이를 위하여, 컨트롤러(130)는 주파수 컨트롤러(133) 및 스레드 할당 회로(134)를 포함할 수 있다. 컨트롤러(130)는 온도 모니터링 및 소팅 회로(120)로부터 모니터링된 복수의 코어들(C0~Cn-1) 각각의 온도에 기초하여 실행 유닛(110)의 동작을 제어할 수 있다. 컨트롤러(130)는 온도 모니터링 및 소팅 회로(120)로부터 코어 온도 정보(CT)를 입력 받을 수 있다.
컨트롤러(130)는 코어 온도 정보(CT)에 기초하여 가장 낮은 코어의 온도를 판단할 수 있다. 컨트롤러(130)는 가장 낮은 온도를 갖는 코어에서 구동 가능한 최대 클럭 주파수(이하, 최대 클럭 주파수)를 판단할 수 있다. 컨트롤러(130)는 룩 업 테이블을 참조하여 해당 온도에 대응되는 최대 클럭 주파수를 검색할 수 있다. 컨트롤러(130)는 코어의 온도에 따른 최대 클럭 주파수에 대한 정보가 저장되는 룩 업 테이블을 포함할 수 있다. 다만, 이에 제한되지 않고, 컨트롤러(130)는 가장 낮은 코어의 온도 값으로부터 최대 클럭 주파수를 계산하기 위한 전자 회로를 포함할 수 있다.
주파수 컨트롤러(133)는 실행 유닛(110)의 동작을 위한 클럭 신호(CLK)의 동작 클럭 주파수를 결정할 수 있다. 가장 낮은 온도를 갖는 코어의 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 높은 경우, 주파수 컨트롤러(133)는 클럭 신호(CLK)의 동작 클럭 주파수를 증가시킬 수 있다. 온도 역전 효과에 의하여 온도가 증가할수록 코어의 구동 가능한 속도는 증가하므로, 가장 낮은 온도를 갖는 코어가 복수의 코어들(C0~Cn-1) 중 가장 느린 구동 가능한 속도를 갖게 된다. 따라서, 복수의 코어들(C0~Cn-1) 모두는 증가된 동작 클럭 주파수에서 정상적으로 동작할 수 있다.
주파수 컨트롤러(133)는 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 기준 값인 k배 이상 높은 경우, 클럭 신호(CLK)의 동작 클럭 주파수를 k배 증가시킬 수 있다. 기준 값 k는 1보다 큰 실수일 수 있다. 예를 들어, 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 2배 이상 높은 경우, 주파수 컨트롤러(133)는 동작 클럭 주파수를 2배 증가시킬 수 있다. 이 경우, 복수의 코어들(C0~Cn-1) 각각의 처리 속도는 2배 증가할 수 있다.
주파수 컨트롤러(133)는 센싱된 복수의 코어들(C0~Cn-1)의 온도에 따라 동작 클럭 주파수를 계속적으로 조절할 수 있다. 복수의 코어들(C0~Cn-1)의 온도는 공급되는 전력, 속도, 및 다른 환경적인 요인에 근거하여 변동될 수 있다. 주파수 컨트롤러(133)는 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수와 현재 조절된 동작 클럭 주파수를 다시 비교한 결과에 따라 동작 클럭 주파수를 다시 조절할 수 있다. 예를 들어, 코어의 온도가 낮아져, 최대 클럭 주파수가 k배 증가된 동작 클럭 주파수보다 낮아진 경우, 주파수 컨트롤러(133)는 동작 클럭 주파수를 낮출 수 있다. 반대로, 코어의 온도가 높아져, 최대 클럭 주파수가 k배 증가된 동작 클럭 주파수보다 높아진 경우, 주파수 컨트롤러(133)는 동작 클럭 주파수를 한번 더 증가시킬 수 있다.
스레드 할당 회로(134)는 전력이 공급될 코어들을 결정할 수 있다. 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 각각이 활성화되거나 비활성화되도록 제어할 수 있다. 가장 낮은 온도를 갖는 코어의 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 높은 경우, 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 중 일부를 활성화시키고, 나머지 코어들을 비활성화시킬 수 있다. 활성화된 코어들은 할당된 스레드 정보(TH)를 처리할 수 있도록 전력을 공급받는다. 비활성화된 코어들은 전력 제공이 차단되어 동작하지 않는다.
스레드 할당 회로(134)는 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 기준 값인 k배 이상 높은 경우, 복수의 코어들(C0~Cn-1) 중 1/k개의 코어들을 활성화시킬 수 있다. 또한, 스레드 할당 회로(134)는 나머지 코어들을 비활성화시킬 수 있다. 예를 들어, 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 2배 이상 높은 경우, 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 중 절반의 코어들을 활성화시키고, 나머지 절반의 코어들을 비활성화시킬 수 있다.
온도 역전 효과에 의하여 온도가 증가할수록 코어의 구동 가능한 속도는 증가한다. 따라서, 주파수 컨트롤러(133)는 온도의 증가에 따라 복수의 코어들(C0~Cn-1) 전체에 제공되는 클럭 신호(CLK)의 동작 클럭 주파수를 증가시킬 수 있다. 다만, 동작 클럭 주파수의 증가에 의한 실행 유닛(110)의 소비 전력의 증가 비율은 동작 클럭 주파수의 증가 비율보다 작다. 예를 들어, 동작 클럭 주파수가 2배 증가한 경우, 소비 전력의 증가량은 2배보다 작을 수 있다. 이 경우, 스레드 할당 회로(134)가 절반의 코어들만 동작하도록 제어하여도, 실행 유닛(110)의 스레드 처리 속도는 유지된다. 또한, 실행 유닛(110)의 전력 소모는 감소한다. 구체적인 내용은 도 4에서 후술된다.
스레드 할당 회로(134)는 센싱된 복수의 코어들(C0~Cn-1)의 온도에 따라 활성화되는 코어의 개수를 계속적으로 조절할 수 있다. 스레드 할당 회로(134)는 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수와 현재의 동작 클럭 주파수를 다시 비교한 결과에 따라 전력이 공급되는 코어들을 다시 결정할 수 있다. 예를 들어, 코어의 온도가 낮아져, 최대 클럭 주파수가 k배 증가된 동작 클럭 주파수보다 낮아진 경우, 스레드 할당 회로(134)는 전력을 공급할 코어들의 개수를 원래대로 증가시킬 수 있다. 반대로, 코어의 온도가 높아져, 최대 클럭 주파수가 k배 증가된 동작 클럭 주파수보다 높아진 경우, 스레드 할당 회로(134)는 전력을 공급할 코어들의 개수를 한번 더 감소시킬 수 있다.
스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1)의 활성화 또는 비활성화를 결정하기 위한 슬립 신호(SL)를 생성할 수 있다. 복수의 코어들(C0~Cn-1)은 슬립 신호(SL)에 기초하여 활성화되거나 비활성화될 수 있다. 예를 들어, 하이 레벨의 슬립 신호(SL)를 수신한 코어들은 비활성화되어 전력이 차단되고, 로우 레벨의 슬립 신호(SL)를 수신한 코어들은 활성화되어 전력이 공급될 수 있다. 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 각각의 온도에 따라 활성화될 코어들을 결정할 수 있다. 예를 들어, 스레드 할당 회로(134)는 센싱된 온도가 높은 순서대로 코어들을 활성화시킬 수 있다. 스레드 할당 회로(134)가 절반의 코어들을 활성화시키는 경우, 온도가 높은 절반의 코어들이 활성화될 수 있다.
스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 중 활성화된 코어들에 스레드 정보(TH)를 분배할 수 있다. 스레드 할당 회로(134)가 활성화되는 코어들의 개수를 감소시킬 때, 비활성화되는 코어들에 스레드 정보(TH)가 할당되지 않도록 스레드 정보(TH)를 재분배할 수 있다. 또한, 이후에, 스레드 할당 회로(134)가 활성화되는 코어들의 개수를 증가시킬 때, 활성화되는 코어들에 스레드 정보(TH)가 할당되도록 스레드 정보(TH)를 재분배할 수 있다. 스레드 할당 회로(134)는 복수의 스레드들을 그룹화한 워프(warp) 단위로 스레드 정보(TH)를 분배하기 위한 워프 스케줄러를 포함할 수 있다.
도 2는 도 1의 코어의 예시적인 구성을 도시하는 블록도이다. 도 2의 코어는 도 1의 제0 코어(C0)로 도시되었으나, 복수의 코어들(C0~Cn-1) 각각의 구성을 도시하는 것으로 이해될 것이다. 도 2의 코어(C0)는 온도 역전 효과를 만족하면서 코어(C0) 자체의 온도를 센싱할 수 있는 하나의 예시로 이해될 것이다. 도 2를 참조하면, 코어(C0)는 피연산자 콜렉터(111), 부동 소수점 회로(112), 정수 연산 회로(113), 큐 회로(114), 및 온도 센서(115)를 포함할 수 있다. 또한, 코어(C0)의 활성화 여부를 결정하기 위한 트랜지스터(Tr0)가 코어(C0)에 연결된다. 설명의 편이상, 도 1의 도면 부호를 참조하여 도 2가 설명된다.
코어(C0)는 클럭 신호(CLK)에 기초하여 동작한다. 코어(C0)의 연산 속도는 클럭 신호(CLK)의 동작 클럭 주파수에 따라 결정된다. 코어(C0)가 활성화된 경우, 컨트롤러(130)는 스레드 정보(TH0)를 코어(C0)에 할당한다. 코어(C0)는 스레드 정보(TH0)에 대응되는 명령어를 실행한다. 피연산자 콜렉터(111)는 스레드 정보(TH0)로부터 정수 연산 또는 부동 소수점 연산을 실행하기 위한 피연산자들을 획득한다.
부동 소수점 회로(112)는 피연산자 콜렉터(111)로부터 획득된 피연산자를 이용하여 부동 소수점(Floating point) 연산을 수행할 수 있다. 부동 소수점 회로(112)는 혼합된 곱셈 연산 및 덧셈 연산을 수행할 수 있다. 정수 연산 회로(113)는 피연산자 콜렉터(111)로부터 획득된 피연산자를 이용하여 정수의 곱셈 연산 또는 누적 연산을 수행할 수 있다. 큐 회로(114)는 부동 소수점 회로(112) 또는 정수 연산 회로(113)로부터 연산된 결과를 입력 받는다. 큐 회로(114)는 입력된 결과를 메모리(미도시)에 제공할 수 있다.
온도 센서(115)는 코어(C0)의 온도를 센싱한다. 복수의 코어들(C0~Cn-1) 각각은 온도 센서를 포함한다. 즉, 복수의 코어들(C0~Cn-1) 각각에 구비된 온도 센서들이 대응되는 코어의 온도를 센싱한다. 온도 센서(115)는 코어의 온도에 따라 가변적인 특성을 갖는 온도 감지 소자를 포함할 수 있다. 온도 센서(115)에 의하여 센싱된 온도는 온도 모니터링 및 소팅 회로(120)에 의하여 모니터링될 수 있다. 이를 위하여, 온도 센서(115)와 온도 모니터링 및 소팅 회로(120)는 전기적으로 연결될 수 있다. 모니터링된 코어(C0)의 온도에 기초하여, 컨트롤러(130)는 동작 클럭 주파수를 조절하고, 코어(C0)로의 전력 공급 여부를 결정할 수 있다.
트랜지스터(Tr0)는 슬립 신호(SL0)에 기초하여, 코어(C0)를 활성화 또는 비활성화시킬 수 있다. 코어(C0)는 활성화된 경우, 전력을 공급받고, 스레드 정보(TH0)를 처리할 수 있다. 복수의 코어들(C0~Cn-1)의 온도 증가에 따라, 동작 클럭 주파수가 증가하는 경우, 코어(C0)는 비활성화 될 수 있다. 이 경우, 코어(C0)로 전력 공급이 차단되고, 스레드 할당 회로(134)의 제어 하에 스레드 정보(TH0)가 코어(C0)로 분배되지 않을 수 있다. 트랜지스터(Tr0)는 코어(C0)에 연결되는 일단자, 접지되는 타단자, 및 슬립 신호(SL0)를 입력 받는 제어 단자를 포함할 수 있다. 다만, 이에 제한되지 않고, 트랜지스터(Tr0)는 구동 전압원(미도시)과 코어(C0) 사이에 연결되어, 슬립 신호(SL0)의 제어에 따라 구동 전압의 제공여부를 결정할 수 있다.
도 3은 도 1에 도시된 코어의 온도 역전 효과를 설명하기 위한 그래프이다. 도 3을 참조하면, 가로축은 온도를 나타내고, 세로축은 코어의 지연 시간을 나타낸다. 코어의 지연 시간은 복수의 코어들(C0~Cn-1) 각각의 스레드의 처리 시간과 관련된다. 도 3은 코어의 구동 전압이 제1 전압(V1), 제2 전압(V2), 또는 제3 전압(V3)일 때의 온도에 따른 코어의 지연 시간을 나타낸다. 제1 전압(V1)에 대한 그래프는 실선으로, 제2 전압(V2)에 대한 그래프는 점선으로, 제3 전압(V3)에 대한 그래프는 일점 쇄선으로 나타난다. 제1 전압(V1)은 제2 전압(V2)보다 높은 전압 레벨을 갖고, 제2 전압(V2)은 제3 전압(V3)보다 높은 전압 레벨을 갖는다.
제1 내지 제3 전압들(V1~V3)은 1V 이하의 초저전압(ULV) 레벨일 수 있다. 기존의 초저전압을 초과하는 전압 레벨에서 구동되는 전자 회로의 지연 시간은 온도의 증가에 따라 증가된다. 즉, 복수의 코어들의 온도의 상승에 따라 구동 가능한 속도가 감소하게 되고, 코어들의 구동 가능한 최대 온도가 특정된다. 이 경우, 복수의 코어들이 구동 가능한 최대 온도를 넘기 않도록 온도 관리 회로 등이 요구되었다. 반면, 도 3의 그래프와 같은 온도 역전 효과 조건에서는 온도의 상승에 따라 지연 시간이 감소하므로, 코어의 속도를 증가시키기 위한 제약이 감소한다. 또한, 구동 전압의 스케일링과 같이 동작 클럭 주파수를 증가시키기 위한 별도의 작업이 요구되지 않는다.
결론적으로, 온도 역전 효과가 나타나는 조건 하에서, 온도의 증가에 따라 지연 시간이 감소하고, 코어의 구동 가능한 속도가 증가할 수 있다. 도 1의 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 갖는 코어의 구동 가능한 속도가 가장 느릴 것이다. 따라서, 그래픽 처리 장치(100)는 가장 낮은 코어의 온도를 이용하여 동작 클럭 주파수 및 활성화될 코어의 개수를 결정한다.
도 4는 도 1에 도시된 코어의 온도 및 클럭 주파수에 따른 소비 전력을 설명하기 위한 그래프이다. 도 4를 참조하면, 가로축은 온도를 나타내고, 세로축은 코어의 소비 전력을 나타낸다. 도 4의 코어는 도 1의 복수의 코어들(C0~Cn-1) 중 하나일 수 있다. 도 4는 코어의 동작 클럭 주파수가 제1 주파수(f1) 또는 제2 주파수(f2)일 때의 온도에 따른 코어의 소비 전력을 나타낸다. 제1 주파수(f1)에 대한 그래프는 실선으로, 제2 주파수(f2)에 대한 그래프는 점선으로 나타난다. 제2 주파수(f2)는 제1 주파수(f1)의 두 배인 것으로 가정한다. 도 4의 코어는 온도 역전 효과를 만족할 수 있다. 즉, 코어의 구동 전압은 초저전압(ULV) 레벨일 수 있다.
제1 온도(t1)에서, 코어가 제1 주파수(f1)로 동작하는 경우, 코어는 제1 전력(P1)만큼 전력을 소모한다. 제1 온도(t1)에서, 코어가 제2 주파수(f2)로 동작하는 경우, 코어는 제2 전력(P2)만큼 전력을 소모한다. 제2 전력(P2)의 크기는 제1 전력(P1)의 2배 보다 작은 크기를 갖는다. 즉, 코어의 동작 클럭 주파수가 2배로 증가하여도, 코어의 전력 소모가 2배로 증가하지 않는다. 예를 들어, 동일한 온도 조건에서, 복수의 코어들(C0~Cn-1) 모두가 제1 주파수(f1)로 동작할 때의 전력 소모는 복수의 코어들(C0~Cn-1) 중 절반의 코어들이 제2 주파수(f2)로 동작할 때보다 전력 소모가 크다. 또한, 동작 클럭 주파수의 증가량만큼 코어 각각의 스레드 처리 속도가 증가하므로 그래픽 처리 장치(100)의 스레드들의 처리 속도는 유지될 수 있다.
복수의 코어들(C0~Cn-1) 모두가 제1 주파수(f1)로 동작할 때의 스레드들을 처리하는 속도는 복수의 코어들(C0~Cn-1) 중 절반의 코어들이 제2 주파수(f2)로 동작할 때의 스레드들을 처리하는 속도와 동일할 수 있다. 다만, 복수의 코어들(C0~Cn-1)이 온도 역전 효과를 위한 조건을 만족하지 않는 경우, 전력 소모를 감소시키기 위하여, 동작 클럭 주파수를 증가시키기 어려울 수 있다. 온도의 증가에 따라 지연 시간이 증가하는 경우, 동작 클럭 주파수를 증가시키는 데 제약이 발생한다. 또한, 온도의 증가에 따라 지연 시간이 증가하는 경우, 구동 가능한 최대 온도 값 이하에서 코어의 성능이 확보된다. 코어의 동작에 따라 온도가 상승하여 최대 온도 값을 초과하는 경우, 코어는 정상적으로 동작하지 않는다.
복수의 코어들(C0~Cn-1)이 온도 역전 효과를 만족하는 경우, 온도의 증가에 따라 지연 시간이 감소한다. 따라서, 코어의 동작 클럭 주파수를 증가시켜도 코어는 정상적으로 동작할 수 있다. 동작 클럭 주파수가 제1 주파수(f1)인 경우, 복수의 코어들(C0~Cn-1) 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수와 제2 주파수(f2)가 비교될 수 있다. 최대 클럭 주파수가 제2 주파수(f2)보다 높은 경우, 동작 클럭 주파수는 제2 주파수(f2)로 조절될 수 있다. 또한, 복수의 코어들(C0~Cn-1) 중 절반은 활성화되고, 나머지 절반은 비활성화될 수 있다.
제2 온도(t2)에서, 코어가 제2 주파수(f2)로 동작하는 경우, 코어는 제1 전력(P1)의 두 배만큼의 전력을 소모한다. 제2 온도(t2)는 제1 온도(t1)보다 높다. 코어가 동일한 동작을 수행하는 과정에서, 활성화되는 코어의 개수를 절반으로 줄이고 동작 클럭 주파수를 2배로 증가시킬 때, 코어의 온도가 제2 온도(t2)보다 낮은 범위에서 소비 전력이 감소될 수 있다. 코어의 온도가 증가할수록, 코어의 소비 전력은 증가한다. 다만, 코어의 온도가 증가할수록, 제1 주파수(f1)에서의 소비 전력에 대한 제2 주파수(f2)에서의 소비 전력의 비율은 감소한다. 따라서, 코어의 온도가 증가함에 따라, 활성화되는 코어의 개수를 줄이고, 동작 클럭 주파수를 증가시킴으로써, 전력 소비의 감소율이 더욱 증가할 수 있다.
도 5는 도 1의 컨트롤러의 예시적인 구성을 도시하는 블록도이다. 도 5의 컨트롤러(130)는 복수의 코어들(C0~Cn-1)의 온도에 따라 동작 클럭 주파수 및 복수의 코어들(C0~Cn-1)의 활성화 여부를 결정할 수 있는 하나의 예시로 이해될 것이다. 도 5를 참조하면, 컨트롤러(130)는 룩 업 테이블(131), 모드 설정 회로(132), 주파수 컨트롤러(133), 및 스레드 할당 회로(134)를 포함한다. 설명의 편이상, 도 1의 도면 부호를 참조하여 도 5가 설명된다.
룩 업 테이블(131)에 코어의 온도에 따른 최대 동작 속도에 대한 정보가 저장된다. 예를 들어, 룩 업 테이블(131)에 코어의 온도에 따라 구동 가능한 최대 클럭 주파수에 대한 정보가 저장될 수 있다. 이러한 정보는 미리 룩 업 테이블(131)에 저장될 수 있다. 룩 업 테이블(131)에 저장된 최대 클럭 주파수에 대한 정보는 온도 역전 효과를 만족한다. 따라서, 온도의 증가에 따라 구동 가능한 최대 클럭 주파수는 증가하도록 룩 업 테이블(131)에 저장된다.
모드 설정 회로(132)는 룩 업 테이블(131)을 참조하여, 복수의 코어들(C0~Cn-1)의 동작 모드를 결정한다. 동작 모드는 노말 모드 및 저전력 모드로 구분될 수 있다. 노말 모드에서, 복수의 코어들(C0~Cn-1) 모두는 노말 클럭 주파수로 동작될 수 있다. 저전력 모드에서, 복수의 코어들(C0~Cn-1) 중 일부는 노말 클럭 주파수보다 높은 제1 또는 제2 클럭 주파수로 동작될 수 있다. 모드 설정 회로(132)는 온도 모니터링 및 소팅 회로(120)로부터 생성된 코어 온도 정보(CT)에 기초하여 복수의 코어들(C0~Cn-1)을 구동하기 위한 동작 클럭 주파수 및 복수의 코어들(C0~Cn-1) 중 스레드가 할당되는 코어들을 판단할 수 있다. 모드 설정 회로(132)는 주파수 비교 회로(132_1) 및 전력 비교 회로(132_2)를 포함한다.
주파수 비교 회로(132_1)는 룩 업 테이블(131)로부터 획득된 최대 클럭 주파수와 현재의 클럭 신호(CLK)의 동작 클럭 주파수를 비교한다. 이를 위하여, 주파수 비교 회로(132_1)는 복수의 코어들(C0~Cn-1)의 온도 중 가장 낮은 온도에 대응되는 최대 클럭 주파수 정보를 룩 업 테이블(131)로부터 읽을 수 있다. 주파수 비교 회로(132_1)는 최대 클럭 주파수와 현재의 동작 클럭 주파수의 비교 결과에 기초하여 이후의 클럭 신호(CLK)의 동작 클럭 주파수를 결정할 수 있다. 주파수 비교 회로(132_1)는 최대 클럭 주파수와 동작 클럭 주파수를 비교하기 위한 비교 연산 회로를 포함할 수 있다.
주파수 비교 회로(132_1)는 노말 클럭 주파수에 대한 최대 클럭 주파수의 비율이 제1 기준 값 이상인 경우, 노말 클럭 주파수에 제1 기준 값이 곱하여진 값인 제1 클럭 주파수로 동작 클럭 주파수가 조절되도록 주파수 컨트롤러(133)를 제어할 수 있다. 또한, 주파수 비교 회로(132_1)는 복수의 코어들(C0~Cn-1)의 개수에 제1 기준 값이 나누어진 제1 활성화 개수만큼 코어들이 활성화되도록 스레드 할당 회로(134)를 제어할 수 있다. 코어들의 개수에 제1 기준 값이 나누어진 값이 정수가 아닌 경우, 제1 활성화 개수는 나누어진 몫에 1을 더한 값일 수 있다. 제1 기준 값은 1보다 큰 실수일 수 있고, 미리 설정된 값일 수 있다. 주파수 비교 회로(132_1)는 동작 클럭 주파수가 제1 클럭 주파수로 증가되도록 제1 저전력 모드 신호를 주파수 컨트롤러(133)에 제공할 수 있다. 또한, 주파수 비교 회로(132_1)는 활성화되는 코어들의 개수가 제1 활성화 개수로 감소되도록 제1 저전력 모드 신호를 스레드 할당 회로(134)에 제공할 수 있다.
주파수 비교 회로(132_1)는 복수의 코어들(C0~Cn-1)이 제1 저전력 모드 신호로 동작한 이후에도, 계속적으로 가장 낮은 온도를 갖는 코어를 이용하여 복수의 코어들(C0~Cn-1)의 동작 모드를 결정한다. 동작 클럭 주파수가 제1 클럭 주파수로 증가된 이후에, 주파수 비교 회로(132_1)는 노말 클럭 주파수와 최대 클럭 주파수를 다시 비교할 수 있다. 주파수 비교 회로(132_1)는 노말 클럭 주파수에 대한 최대 클럭 주파수의 비율이 제2 기준 값 이상인 경우, 노말 클럭 주파수에 제2 기준 값이 곱하여진 값인 제2 클럭 주파수로 동작 클럭 주파수가 조절되도록 주파수 컨트롤러(133)를 제어할 수 있다. 제2 기준 값은 제1 기준 값보다 크다. 주파수 비교 회로(132_1)는 복수의 코어들(C0~Cn-1)의 개수에 제2 기준 값이 나누어진 제2 활성화 개수만큼 코어들이 활성화되도록 스레드 할당 회로(134)를 제어할 수 있다. 이를 위하여, 주파수 비교 회로(132_1)는 제2 저전력 모드 신호를 주파수 컨트롤러(133) 및 스레드 할당 회로(134)에 제공할 수 있다.
주파수 비교 회로(132_1)는 최대 클럭 주파수가 노말 클럭 주파수보다 낮아진 경우, 복수의 코어들(C0~Cn-1)의 동작 모드를 제1 또는 제2 저전력 모드에서 노말 모드로 복원시킬 수 있다. 주파수 비교 회로(132_1)는 최대 클럭 주파수가 제1 클럭 주파수보다 낮아진 경우, 복수의 코어들(C0~Cn-1)의 동작 모드를 제2 저전력 모드에서 제1 저전력 모드로 복원시킬 수 있다. 복수의 코어들(C0~Cn-1)의 온도가 감소한 경우, 최대 클럭 주파수가 동작 클럭 주파수보다 낮아질 수 있다. 예를 들어, 도 4에서 설명된 바와 같이, 코어들의 동작 클럭 주파수를 증가시키고, 활성화되는 코어들의 개수를 감소시키는 경우, 소모 전력이 감소할 수 있다. 이러한 소모 전력의 감소에 기초하여 복수의 코어들(C0~Cn-1)의 온도가 감소할 수 있다.
주파수 비교 회로(132_1)는 최대 클럭 주파수가 노말 클럭 주파수보다 낮아진 경우, 동작 클럭 주파수가 노말 클럭 주파수로 조절되도록 주파수 컨트롤러(133)를 제어할 수 있다. 또한, 주파수 비교 회로(132_1)는 복수의 코어들(C0~Cn-1) 전체가 활성화되도록 스레드 할당 회로(134)를 제어할 수 있다. 이를 위하여, 주파수 비교 회로(132_1)는 노말 모드 신호를 주파수 컨트롤러(133) 및 스레드 할당 회로(134)에 제공할 수 있다.
전력 비교 회로(132_2)는 복수의 코어들(C0~Cn-1)의 동작 모드를 변경할 때의 예상 소모 전력과 현재의 소모 전력을 비교하여 동작 모드를 결정한다. 예를 들어, 주파수 비교 회로(132_1)의 비교 결과에 따라 동작 모드가 노말 모드에서 저전력 모드로 변경될 수 있다. 전력 비교 회로(132_2)는 현재의 동작 모드인 노말 모드에서의 소모 전력을 계산하고, 저전력 모드에서의 예상 소모 전력을 계산할 수 있다. 노말 모드에서의 소모 전력이 예상 소모 전력보다 높은 경우, 동작 모드는 노말 모드에서 저전력 모드로 변경된다. 노말 모드에서의 소모 전력이 예상 소모 전력보다 높지 않은 경우, 동작 모드는 노말 모드에서 저전력 모드로 변경되지 않는다.
전력 비교 회로(132_2)는 제1 저전력 모드에서 제2 저전력 모드로 동작 모드를 변경할 때, 예상 소모 전력과 현재의 소모 전력을 비교할 수 있다. 제1 저전력 모드에서의 소모 전력이 제2 저전력 모드에서의 예상 소모 전력보다 높은 경우에, 동작 모드는 제1 저전력 모드에서 제2 저전력 모드로 변경될 수 있다. 다만, 전력 비교 회로(132_2)는 제1 또는 제2 저전력 모드에서 노말 모드로 동작 모드가 변경되거나, 제2 저전력 모드에서 제1 저전력 모드로 동작 모드가 변경될 때, 현재의 소모 전력과 예상 소모 전력을 비교하지 않을 수 있다. 이 경우, 코어의 구동 가능한 최대 클럭 주파수보다 동작 클럭 주파수가 높은 상태이므로, 소모 전력을 낮추는 것보다 동작 클럭 주파수를 낮추는 것이 중요할 수 있기 때문이다.
주파수 컨트롤러(133)는 모드 설정 회로(132)에 의하여 결정된 동작 모드에 따라, 클럭 신호(CLK)의 동작 클럭 주파수를 조절한다. 주파수 컨트롤러(133)는 제1 저전력 모드 신호에 기초하여 클럭 신호(CLK)의 동작 클럭 주파수를 제1 클럭 주파수로 조절할 수 있다. 주파수 컨트롤러(133)는 제2 저전력 모드 신호에 기초하여 클럭 신호(CLK)의 동작 클럭 주파수를 제2 클럭 주파수로 조절할 수 있다. 주파수 컨트롤러(133)는 노말 모드 신호에 기초하여 클럭 신호(CLK)의 동작 클럭 주파수를 노말 클럭 주파수로 조절할 수 있다. 주파수 컨트롤러(133)는 도 1의 주파수 컨트롤러(133)와 실질적으로 동일한 구성일 수 있다.
스레드 할당 회로(134)는 모드 설정 회로(132)에 의하여 결정된 동작 모드에 따라, 복수의 코어들(C0~Cn-1) 중 활성화되는 코어들을 결정할 수 있다. 스레드 할당 회로(134)는 제1 저전력 모드 신호에 기초하여 제1 활성화 개수의 코어들에 전력이 공급되도록 선택된 코어들을 활성화시킬 수 있다. 스레드 할당 회로(134)는 제2 저전력 모드 신호에 기초하여 제2 활성화 개수의 코어들에 전력이 공급되도록 선택된 코어들을 활성화시킬 수 있다. 스레드 할당 회로(134)는 노말 모드 신호에 기초하여 복수의 코어들(C0~Cn-1) 전체에 전력이 공급되도록 복수의 코어들(C0~Cn-1)을 활성화시킬 수 있다. 이를 위하여, 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 각각의 활성화 여부를 결정하는 슬립 신호(SL)를 출력할 수 있다. 스레드 할당 회로(134)는 도 1의 스레드 할당 회로(134)와 실질적으로 동일한 구성일 수 있다.
스레드 할당 회로(134)는 활성화되는 코어들에 스레드가 할당되도록 스레드를 재분배할 수 있다. 스레드 할당 회로(134)는 제1 또는 제2 저전력 모드 신호에 기초하여 활성화된 코어들에 스레드 정보(TH)를 생성할 수 있다. 스레드 할당 회로(134)는 노말 모드 신호에 기초하여 복수의 코어들(C0~Cn-1) 전체에 스레드가 할당되도록 스레드 정보(TH)를 생성할 수 있다.
도 6 및 도 7은 본 발명의 실시예에 따른 그래픽 처리 장치의 동작 방법에 대한 순서도이다. 도 6은 복수의 코어들(C0~Cn-1)의 온도의 증가에 따라 동작 모드를 노말 모드에서 저전력 모드로 변환하는 과정을 설명하기 위한 도면이다. 도 7은 복수의 코어들(C0~Cn-1)의 온도의 감소에 따라 동작 모드를 저전력 모드에서 노말 모드로 변환하는 과정을 설명하기 위한 도면이다. 도 6 및 도 7의 단계들은 도 1의 그래픽 처리 장치(100)에서 수행될 수 있다. 설명의 편이상, 도 1 및 도 5의 도면 부호를 참조하여, 도 6 및 도 7의 단계들이 설명된다.
도 6을 참조하면, S110 단계에서, 복수의 코어들(C0~Cn-1)은 대응되는 코어의 온도를 센싱한다. 코어의 온도는 도 2의 코어(C0)에 포함된 온도 센서(115)에 의하여 센싱될 수 있다. 즉, 복수의 코어들(C0~Cn-1) 각각에 포함된 온도 센서를 이용하므로, 복수의 코어들(C0~Cn-1) 각각의 온도가 개별적으로 감지될 수 있다. 온도 모니터링 및 소팅 회로(120)는 복수의 코어들(C0~Cn-1) 각각의 온도들을 모니터링 한다.
S120 단계에서, 컨트롤러(130)는 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수를 검색한다. 온도 모니터링 및 소팅 회로(120) 또는 컨트롤러(130)는 복수의 코어들(C0~Cn-1) 각각으로부터 센싱된 온도에 기초하여 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 검출할 수 있다. 컨트롤러(130)는 룩 업 테이블(131)을 참조하여, 검출된 가장 낮은 온도에 대응되는 최대 클럭 주파수를 검색할 수 있다. 다만, 이에 제한되지 않고, 온도 모니터링 및 소팅 회로(120)에 최대 클럭 주파수를 검색하기 위한 룩 업 테이블(131)이 제공될 수 있다. 이 경우, 온도 모니터링 및 소팅 회로(120)가 최대 클럭 주파수를 검색할 수 있다.
S130 단계에서, 컨트롤러(130)는 검색된 최대 클럭 주파수와 동작 클럭 주파수를 비교한다. 컨트롤러(130)는 최대 클럭 주파수를 동작 클럭 주파수에 기준 값인 k를 곱한 값과 비교할 수 있다. 최대 클럭 주파수가 동작 클럭 주파수보다 k배 이상인 경우, 컨트롤러(130)는 복수의 코어들(C0~Cn-1)이 클럭 신호(CLK)의 동작 클럭 주파수를 k배 증가시켜도 정상 동작이 가능한 것으로 판단할 수 있다. 이 경우, S140 단계가 진행된다. 최대 클럭 주파수가 동작 클럭 주파수보다 k배 이상이 아닌 경우, 컨트롤러(130)는 복수의 코어들(C0~Cn-1)이 동작 클럭 주파수를 k배 증가시킬 수 없는 상태로 판단할 수 있다. 이 경우, 현재의 동작 모드가 유지되고, S110 단계가 진행된다.
S140 단계에서, 컨트롤러(130)는 현재의 동작 모드에서의 복수의 코어들(C0~Cn-1)의 소모 전력과 동작 모드를 변경할 경우의 예상 소모 전력을 비교할 수 있다. 예를 들어, 현재 그래픽 처리 장치(100)가 노말 모드로 동작하는 경우, 컨트롤러(130)는 노말 클럭 주파수로 동작하는 복수의 코어들(C0~Cn-1) 전체의 소모 전력과 저전력 모드의 동작 클럭 주파수로 동작하는 활성화된 코어들의 예상 소모 전력을 비교할 수 있다. 컨트롤러(130)는 동작 클럭 주파수를 k배 증가시킬 때의 활성화되는 코어의 개수를 계산하고, 계산된 개수의 코어들을 k배 증가시킨 동작 클럭 주파수로 구동할 때의 예상 소모 전력을 계산할 수 있다. 예상 소모 전력이 현재의 소모 전력보다 낮은 경우, 동작 모드를 변환하기 위하여 S150 단계가 진행된다. 예상 소모 전력이 현재의 소모 전력보다 낮지 않은 경우, 현재의 동작 모드가 유지되고, S110 단계가 진행된다.
S150 단계에서, 주파수 컨트롤러(133)는 클럭 신호(CLK)의 동작 클럭 주파수를 k배로 증가시킬 수 있다. 주파수 컨트롤러(133)는 모드 설정 회로(132)에 의하여 제공된 저전력 모드 신호에 기초하여 동작 클럭 주파수를 조절할 수 있다. 따라서, 복수의 코어들(C0~Cn-1) 중 활성화된 코어들의 스레드 처리 속도가 증가할 수 있다.
S160 단계에서, 스레드 할당 회로(134)는 1/k개의 코어들을 활성화시키고, 나머지 코어들을 비활성화시킬 수 있다. 1/k가 정수가 아닌 경우, 활성화되는 코어의 개수는 1/k의 올림 값일 수 있다. 스레드 할당 회로(134)는 모드 설정 회로(132)에 의하여 제공된 저전력 모드 신호에 기초하여 활성화되는 코어의 개수를 조절할 수 있다. 활성화된 코어들에 전력이 제공되고, k배 증가된 동작 클럭 주파수에 기초하여 활성화된 코어들은 스레드를 처리한다. 스레드 할당 회로(134)는 활성화되는 코어들의 개수가 변경됨에 따라, 스레드를 재분배할 수 있다. 스레드 할당 회로(134)는 활성화되는 코어들로 스레드를 할당할 수 있다.
도 7을 참조하면, S210 단계에서, 복수의 코어들(C0~Cn-1)은 대응되는 코어의 온도를 센싱한다. S220 단계에서, 컨트롤러(130)는 복수의 코어들(C0~Cn-1) 중 가장 낮은 온도를 갖는 코어의 구동 가능한 최대 클럭 주파수를 검색한다. S210 단계 및 S220 단계는 도 6의 S110 단계 및 S120 단계와 동일하다. 도 7의 현재 동작 모드는 저전력 모드인 것으로 가정한다. 따라서, 복수의 코어들(C0~Cn-1) 중 일부의 코어들이 활성화되고, 나머지 코어들은 비활성화된다.
S230 단계에서, 컨트롤러(130)는 검색된 최대 클럭 주파수와 동작 클럭 주파수를 비교한다. 여기서의 동작 클럭 주파수는 저전력 모드에서 복수의 코어들(C0~Cn-1)을 구동시키기 위한 클럭 신호(CLK)의 클럭 주파수일 수 있다. 최대 클럭 주파수가 동작 클럭 주파수보다 낮은 경우, 컨트롤러(130)는 저전력 모드를 유지할 때, 정상 동작이 어려운 것으로 판단할 수 있다. 이 경우, S240 단계가 진행된다. 최대 클럭 주파수가 동작 클럭 주파수보다 낮지 않은 경우, 컨트롤러(130)는 저전력 모드를 유지 가능한 것으로 판단할 수 있다. 이 경우, 현재의 동작 모드인 저전력 모드가 유지되고, S210 단계가 진행된다.
S240 단계에서, 주파수 컨트롤러(133)는 클럭 신호(CLK)의 동작 클럭 주파수를 감소시킨다. 저전력 모드로 동작하기 위하여, 동작 클럭 주파수가 노말 클럭 주파수의 k배로 증가되었던 경우, 주파수 컨트롤러(133)는 동작 클럭 주파수를 다시 노말 클럭 주파수로 감소시킬 수 있다. 주파수 컨트롤러(133)는 모드 설정 회로(132)에 의하여 제공된 노말 모드 신호에 기초하여 동작 클럭 주파수를 조절할 수 있다.
S250 단계에서, 스레드 할당 회로(134)는 전력을 제공하는 코어의 개수를 증가시킨다. 스레드 할당 회로(134)는 모드 설정 회로(132)에 의하여 제공된 노말 모드 신호에 기초하여 복수의 코어들(C0~Cn-1) 전체를 활성화시킬 수 있다. 복수의 코어들(C0~Cn-1) 전체에 전력이 제공되고, 감소된 동작 클럭 주파수에 기초하여 스레드가 처리된다. 스레드 할당 회로(134)는 활성화되는 코어들의 개수가 증가함에 따라, 스레드를 재분배할 수 있다. 스레드 할당 회로(134)는 복수의 코어들(C0~Cn-1) 전체로 스레드를 할당할 수 있다.
위에서 설명한 내용은 본 발명을 실시하기 위한 구체적인 예들이다. 본 발명에는 위에서 설명한 실시 예들뿐만 아니라, 단순하게 설계 변경하거나 용이하게 변경할 수 있는 실시 예들도 포함될 것이다. 또한, 본 발명에는 상술한 실시 예들을 이용하여 앞으로 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다.
100: 그래픽 처리 장치 110: 실행 유닛
120: 온도 모니터링 및 소팅 회로 130: 컨트롤러
131: 룩 업 테이블 132: 모드 설정 회로
133: 주파수 컨트롤러 134: 스레드 할당 회로
C0~Cn-1: 복수의 코어들

Claims (17)

  1. 온도의 증가에 따라 입력과 출력 사이의 지연 시간이 감소하는 복수의 코어들;
    상기 복수의 코어들 각각의 온도를 모니터링하는 온도 모니터링 및 소팅 회로; 및
    상기 모니터링된 복수의 코어들 각각의 온도 중 가장 낮은 온도를 갖는 코어의 구동 가능한 클럭 주파수에 기초하여 상기 복수의 코어들의 클럭 주파수 및 전력 공급을 제어하는 컨트롤러를 포함하는 그래픽 처리 장치.
  2. 제1 항에 있어서,
    상기 복수의 코어들 각각은,
    온도를 센싱하는 온도 센서를 포함하는 그래픽 처리 장치.
  3. 제1 항에 있어서,
    상기 컨트롤러는,
    상기 가장 낮은 온도를 갖는 상기 코어의 구동 가능한 최대 클럭 주파수와 현재의 동작 클럭 주파수를 비교하여 상기 동작 클럭 주파수를 조절하고 상기 전력이 공급되는 코어를 결정하는 그래픽 처리 장치.
  4. 제3 항에 있어서,
    상기 컨트롤러는,
    상기 최대 클럭 주파수가 상기 동작 클럭 주파수보다 기준 값의 배수 이상 높은 경우, 상기 동작 클럭 주파수를 상기 기준 값의 배수로 증가시키고 상기 복수의 코어들 중 상기 기준 값의 역수만큼의 코어들에 상기 전력을 공급하는 그래픽 처리 장치.
  5. 제3 항에 있어서,
    상기 컨트롤러는,
    상기 최대 클럭 주파수가 상기 동작 클럭 주파수보다 낮은 경우, 상기 동작 클럭 주파수를 낮추고 상기 전력이 공급되는 코어의 개수를 증가시키는 그래픽 처리 장치.
  6. 제3 항에 있어서,
    상기 컨트롤러는,
    코어의 온도에 따른 최대 클럭 주파수에 대한 정보가 저장되는 룩 업 테이블을 참조하여 상기 동작 클럭 주파수를 조절하는 주파수 컨트롤러; 및
    상기 룩 업 테이블을 참조하여 상기 전력이 공급되는 코어에 스레드를 할당하는 스레드 할당 회로를 포함하는 그래픽 처리 장치.
  7. 제1 항에 있어서,
    상기 복수의 코어들 각각에 연결되어 상기 컨트롤러의 제어에 따라 대응되는 코어에 상기 전력을 전달하거나 상기 전력을 차단시키는 복수의 트랜지스터들을 더 포함하는 그래픽 처리 장치.
  8. 제1 항에 있어서,
    상기 컨트롤러는,
    상기 가장 낮은 온도를 갖는 상기 코어의 구동 가능한 최대 클럭 주파수가 현재의 동작 클럭 주파수보다 높은 경우, 상기 복수의 코어들 각각의 온도에 기초하여 상기 복수의 코어들 중 상기 전력이 공급될 일부의 코어들을 결정하는 그래픽 처리 장치.
  9. 제1 항에 있어서,
    상기 복수의 코어들을 구동시키기 위한 구동 전압은 1V 이하의 초저전압(Ultra-Low Voltage, ULV)인 그래픽 처리 장치.
  10. 온도의 증가에 따라 입력과 출력 사이의 지연 시간이 감소하는 복수의 코어들 각각의 온도를 센싱하는 단계;
    상기 센싱된 복수의 코어들 각각의 온도 중 가장 낮은 온도를 갖는 코어의 최대 클럭 주파수와 상기 복수의 코어들의 동작 클럭 주파수를 비교하는 단계;
    상기 최대 클럭 주파수와 상기 동작 클럭 주파수의 비교 결과에 기초하여 상기 동작 클럭 주파수를 조절하는 단계; 및
    상기 비교 결과에 기초하여 전력이 제공되는 코어를 결정하는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  11. 제10 항에 있어서,
    상기 최대 클럭 주파수와 상기 동작 클럭 주파수를 비교하는 단계는,
    상기 가장 낮은 온도에 대한 상기 최대 클럭 주파수를 룩 업 테이블에서 검색하는 단계를 더 포함하는 그래픽 처리 장치의 동작 방법.
  12. 제10 항에 있어서,
    상기 동작 클럭 주파수를 조절하는 단계는,
    상기 동작 클럭 주파수에 대한 상기 최대 클럭 주파수의 비율이 기준 값 이상인 경우, 상기 동작 클럭 주파수에 상기 기준 값을 곱하는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  13. 제10 항에 있어서,
    상기 동작 클럭 주파수를 조절하는 단계는,
    상기 최대 클럭 주파수가 상기 동작 클럭 주파수보다 낮은 경우, 상기 동작 클럭 주파수를 낮추는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  14. 제10 항에 있어서,
    상기 조절된 동작 클럭 주파수에 기초하여 상기 전력을 제공하기 위한 코어의 개수를 계산하는 단계;
    상기 계산된 개수의 코어들을 상기 조절된 동작 클럭 주파수로 구동할 때의 예상 소모 전력을 계산하는 단계; 및
    상기 복수의 코어들의 소모 전력과 상기 예상 소모 전력을 비교하여 상기 동작 클럭 주파수의 조절 및 상기 전력이 제공되는 코어의 결정 여부를 판단하는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  15. 제10 항에 있어서,
    상기 전력이 제공되는 코어를 결정하는 단계는,
    상기 동작 클럭 주파수에 대한 상기 최대 클럭 주파수의 비율이 기준 값 이상인 경우, 코어의 개수에 상기 기준 값을 나눈 값에 기초하여 상기 전력을 제공하기 위한 상기 코어의 개수를 감소시키는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  16. 제10 항에 있어서,
    상기 전력이 제공되는 코어를 결정하는 단계는,
    상기 최대 클럭 주파수가 상기 동작 클럭 주파수보다 낮은 경우, 상기 전력을 제공하기 위한 코어의 개수를 증가시키는 단계를 포함하는 그래픽 처리 장치의 동작 방법.
  17. 제10 항에 있어서,
    상기 전력이 제공되는 코어에 할당되도록 스레드를 재분배하는 단계를 더 포함하는 그래픽 처리 장치의 동작 방법.
KR1020170168269A 2017-12-08 2017-12-08 그래픽 처리 장치 및 이의 동작 방법 KR102603299B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170168269A KR102603299B1 (ko) 2017-12-08 2017-12-08 그래픽 처리 장치 및 이의 동작 방법
US16/165,878 US11086385B2 (en) 2017-12-08 2018-10-19 Graphics processing unit having temperature effect inversion and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170168269A KR102603299B1 (ko) 2017-12-08 2017-12-08 그래픽 처리 장치 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20190068156A true KR20190068156A (ko) 2019-06-18
KR102603299B1 KR102603299B1 (ko) 2023-11-17

Family

ID=66696718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170168269A KR102603299B1 (ko) 2017-12-08 2017-12-08 그래픽 처리 장치 및 이의 동작 방법

Country Status (2)

Country Link
US (1) US11086385B2 (ko)
KR (1) KR102603299B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110794949A (zh) * 2019-09-27 2020-02-14 苏州浪潮智能科技有限公司 一种基于部件温度自动分配计算资源的降功耗方法和系统
US11709795B2 (en) 2020-11-12 2023-07-25 Electronics And Telecommunications Research Institute Electronic device including main processor and systolic array processor and operating method of electronic device
CN112764509B (zh) * 2021-02-03 2024-03-01 北京灵汐科技有限公司 计算核、计算核温度调整方法、设备、介质、芯片和系统
US11662765B1 (en) * 2022-01-13 2023-05-30 Qualcomm Incorporated System for providing a low latency and fast switched cascaded dual phased lock loop (PLL) architecture for die-to-die / system-on-chip (SoC) interfaces

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060134185A (ko) * 2004-03-29 2006-12-27 가부시키가이샤 소니 컴퓨터 엔터테인먼트 프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치
KR100926568B1 (ko) * 2007-12-07 2009-11-12 한국전자통신연구원 반도체 디바이스 및 이에 대한 템퍼 방지 방법
KR20160042003A (ko) * 2013-08-08 2016-04-18 퀄컴 인코포레이티드 와트당 최적 성능을 위한 지능형 멀티코어 제어
KR20170092437A (ko) * 2016-02-03 2017-08-11 한국전자통신연구원 초저전압 디지털 회로 및 그것의 동작 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7421623B2 (en) * 2004-07-08 2008-09-02 International Business Machines Corporation Systems, methods, and media for controlling temperature in a computer system
US8181144B2 (en) * 2008-10-14 2012-05-15 Lsi Corporation Circuit timing analysis incorporating the effects of temperature inversion
WO2012009252A2 (en) 2010-07-13 2012-01-19 Advanced Micro Devices, Inc. Dynamic control of simds
US8594856B2 (en) * 2011-02-15 2013-11-26 Nuvoton Technology Corporation Processor cooling by temperature range and multiple algorithm fan speed control
CN103455077B (zh) * 2012-05-31 2016-08-03 华为技术有限公司 一种自适应调整电压的方法、装置及系统
US8766704B2 (en) * 2012-09-05 2014-07-01 Apple Inc. Adaptive voltage adjustment based on temperature value
KR20170023280A (ko) 2015-08-19 2017-03-03 한국전자통신연구원 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
US9859889B2 (en) * 2016-02-03 2018-01-02 Electronics And Telecommunications Research Institute Ultra low voltage digital circuit and operation method thereof
JP6275173B2 (ja) 2016-03-03 2018-02-07 ルネサスエレクトロニクス株式会社 半導体装置
KR102244848B1 (ko) 2016-10-13 2021-04-27 한국전자통신연구원 온도-효과-역전 현상을 사용하는 네트워크-온-칩 및 그것의 동작 방법
KR102088765B1 (ko) 2016-11-24 2020-03-16 한국전자통신연구원 반도체 장치 및 그것의 동작 방법
US10340903B2 (en) * 2016-11-24 2019-07-02 Electronics & Telecommunications Research Institute Semiconductor device and operation method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060134185A (ko) * 2004-03-29 2006-12-27 가부시키가이샤 소니 컴퓨터 엔터테인먼트 프로세싱 태스크 스케줄링을 이용하는 열 관리를 달성하기위한 방법들 및 장치
KR100926568B1 (ko) * 2007-12-07 2009-11-12 한국전자통신연구원 반도체 디바이스 및 이에 대한 템퍼 방지 방법
KR20160042003A (ko) * 2013-08-08 2016-04-18 퀄컴 인코포레이티드 와트당 최적 성능을 위한 지능형 멀티코어 제어
KR20170092437A (ko) * 2016-02-03 2017-08-11 한국전자통신연구원 초저전압 디지털 회로 및 그것의 동작 방법

Also Published As

Publication number Publication date
US11086385B2 (en) 2021-08-10
KR102603299B1 (ko) 2023-11-17
US20190179397A1 (en) 2019-06-13

Similar Documents

Publication Publication Date Title
US11086385B2 (en) Graphics processing unit having temperature effect inversion and operation method thereof
CN101379453B (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
JP5985708B2 (ja) マルチコアプロセッサにおける電力消費の管理
US7146514B2 (en) Determining target operating frequencies for a multiprocessor system
US8447994B2 (en) Altering performance of computational units heterogeneously according to performance sensitivity
US8443209B2 (en) Throttling computational units according to performance sensitivity
US8892916B2 (en) Dynamic core pool management
EP2674863B1 (en) Multi-cluster processing system and method of operating the same
US5812860A (en) Method and apparatus providing multiple voltages and frequencies selectable based on real time criteria to control power consumption
US10031574B2 (en) Apparatus and method for controlling multi-core processor of computing system
US20140089699A1 (en) Power management system and method for a processor
US20130047166A1 (en) Systems and Methods for Distributing an Aging Burden Among Processor Cores
US8806491B2 (en) Thread migration to improve power efficiency in a parallel processing environment
KR20190109408A (ko) 적응적 전력 제어 루프
US9164931B2 (en) Clamping of dynamic capacitance for graphics
CN108885486B (zh) 增强型动态时钟和电压缩放(dcvs)方案
US20110022356A1 (en) Determining performance sensitivities of computational units
US11138037B2 (en) Switch policy for hybrid scheduling in multi-processor systems
US20230004204A1 (en) Neural network power management in a multi-gpu system
US20100070793A1 (en) Clock supply device
US11853111B2 (en) System and method for controlling electrical current supply in a multi-processor core system via instruction per cycle reduction
CN116997878A (zh) 一种功率预算的分配方法及相关设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant