KR20150050135A - 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 - Google Patents

복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 Download PDF

Info

Publication number
KR20150050135A
KR20150050135A KR1020130131589A KR20130131589A KR20150050135A KR 20150050135 A KR20150050135 A KR 20150050135A KR 1020130131589 A KR1020130131589 A KR 1020130131589A KR 20130131589 A KR20130131589 A KR 20130131589A KR 20150050135 A KR20150050135 A KR 20150050135A
Authority
KR
South Korea
Prior art keywords
core
big
temperature
cores
high performance
Prior art date
Application number
KR1020130131589A
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 KR1020130131589A priority Critical patent/KR20150050135A/ko
Priority to US14/505,952 priority patent/US9588577B2/en
Priority to TW103135430A priority patent/TWI675289B/zh
Priority to CN201410602301.1A priority patent/CN104679586B/zh
Publication of KR20150050135A publication Critical patent/KR20150050135A/ko

Links

Images

Classifications

    • 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
    • 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/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/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
    • 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/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/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)

Abstract

본 발명의 일 실시예에 따르면, 이종멀티코어를 포함하는 전자 시스템의 동작 방법에 있어서, 빅 코어의 온도 및 작업량(workload)를 측정하는 단계, 및 상기 빅 코어의 온도 및 작업량에 따라, 상기 빅 코어 및 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어 간의 코어 스위칭을 수행하는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다. 상기 빅 코어는 상기 적어도 하나의 스몰 코어에 비하여 고성능 및 고전력 코어이다.

Description

복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법{ELECTRONIC SYSTEM INCLUDING A PLURALITY OF HETEROGENEOUS CORES AND OPERATING METHOD THEROF}
본 발명은 전자 시스템 및 이의 동작 방법에 관한 것으로, 특히 저전력 코어와 고성능 코어를 포함하는 전자 시스템 및 이의 동작 방법에 관한 것이다.
모바일용 어플리케이션 프로세서는 빠른 성능과 낮은 소모전류를 보장하기 위해 고성능 코어와 저전력 코어를 하나의 칩에 구현하여 사용한다.
고성능 코어는 사용시 높은 파워소모와 발열 및 안정성 문제가 있다. 저전력 코어는 파워소모는 적으나 태스크 처리속도 및 처리용량에 한계가 있다.
저전력 코어가 사용되다가 CPU 로드(load)가 증가하면 상기 저전력 코어에서 고성능 코어로 스위칭된다. 사용되는 고성능 코어의 개수가 늘어날수록 전력 소모 및 발열이 크게 증가한다. 한편 CPU 로드가 줄어들면 고성능 코어에서 저전력 코어로 스위칭된다.
멀티 코어 프로세서에서 보다 효과적인 온도 관리를 수행하기 위해 다양한 스위칭 기법들이 개발되고 있다.
본 발명이 이루고자 하는 기술적인 과제는 보다 효과적인 온도 관리를 수행하는 전자 시스템 및 이의 동작 방법을 제공하는 것이다.
본 발명의 일 실시예에 따르면, 이종멀티코어를 포함하는 전자 시스템의 동작 방법에 있어서, 빅 코어의 온도 및 작업량(workload)를 측정하는 단계, 및 상기 빅 코어의 온도 및 작업량에 따라, 상기 빅 코어 및 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어 간의 코어 스위칭을 수행하는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다.
상기 전자 시스템은 인-커널 스위칭(In-kernel switching)을 사용할 수 있다.
상기 코어 스위칭을 수행하는 단계는 상기 빅 코어의 온도가 제1 기준 온도 이상이 되면, 상기 빅 코어의 잡 큐(job queue)를 상기 스몰 코어로 이동(migrate)시키는 단계, 및 상기 빅 코어를 클락 게이팅 또는 파워 게이팅하는 단계를 포함할 수 있다.
상기 빅 코어의 잡 큐를 상기 스몰 코어로 이동시키는 단계는 상기 빅 코어에 상응하는 노멀 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 스로틀(throttled) DVFS 테이블로 변경하는 단계를 포함하고, 상기 스로틀 DVFS 테이블은 상기 스몰 코어에 상응하는 성능 영역만 이용할 수 있다.
상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블은 상기 스몰 코어에 상응하는 성능 영역에서 서로 다를 수 있다.
상기 전자 시스템은 상기 빅 코어를 복수 개 포함하고, 상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블 각각은 상기 빅 코어의 활성화 개수에 따라 다를 수 있다.
상기 코어 스위칭을 수행하는 단계는 상기 빅 코어의 온도가 제2 기준 온도 이하가 되면, 상기 잡 큐를 상기 빅 코어로 이동시키는 단계를 더 포함할 수 있다.
상기 제2 기준 온도는 상기 제1 기준 온도보다 낮을 수 있다.
상기 빅 코어의 온도는 상기 빅 코어에 구비되는 온도 센서에 의해 측정될 수 있다.
상기 코어 스위칭을 수행하는 단계는 기설정된 조건에 따라, 상기 빅 코어에 인접한 빅 코어들의 잡 큐를 상기 인접한 빅 코어들에 상응하는 스몰 코어들로 이동시키는 단계를 더 포함할 수 있다.
상기 빅 코어에 상응하는 스몰 코어는 동적으로 가변될 수 있다.
상기 전자 시스템은 상기 빅 코어를 N(N은 1 이상의 정수)개 포함하고, 상기 스몰 코어를 M(M은 1 이상의 정수)개 포함하며, 상기 N은 M과 다를 수 있다.
상기 전자 시스템은 시스템-온 칩(System-on Chip; SoC)일 수 있다.
본 발명의 다른 실시예에 따르면, N(N은 1 이상의 정수)개의 고성능 코어들을 포함하는 고성능 클러스터, M(M은 1 이상의 정수)개의 저전력 코어들을 포함하는 저전력 클러스터, 및 상기 각 고성능 코어의 온도에 따라 상기 각 고성능 코어 및 상기 고성능 코어에 상응하는 적어도 하나의 저전력 코어 간에 코어 스위칭을 수행하는 스위쳐를 포함하는 전자 시스템이 제공된다.
상기 고성능 코어들 각각은 상기 저전력 코어들 중 어느 하나에 동적 또는 정적으로 매핑될 수 있다.
상기 스위쳐는 적어도 하나의 상기 고성능 코어의 온도가 제1 기준 온도 이상이 되면, 상기 고성능 코어의 잡 큐(job queue)를 상기 고성능 코어에 상응하는 저전력 코어로 이동(migrate)시킬 수 있다.
상기 스위쳐는 상기 잡 큐를 상기 저전력 코어로 이동시킨 후, 상기 고성능 코어를 클락 게이팅 또는 파워 게이팅할 수 있다.
상기 스위쳐는 상기 고성능 코어의 온도가 제3 기준 온도 이상이 되면, 상기 고성능 코어에 인접한 고성능 코어들의 잡 큐를 각 인접한 고성능 코어들에 상응하는 저전력 코어들로 이동시킬 수 있다.
상기 스위쳐는 상기 각 고성능 코어의 온도가 제2 기준 온도 이하가 되면, 상기 각 고성능 코어에 상응하는 저전력 코어의 잡 큐를 상기 각 고성능 코어로 이동시킬 수 있다.
본 발명의 또 다른 실시예에 따르면, 각각이 제1 타입 코어 및 상기 제1 타입 코어와 성능 또는 전력 특성이 다른 제2 타입 코어를 포함하고, 상기 제1 타입 코어 및 상기 제2 타입 코어 중 하나가 선택적으로 동작하는 적어도 하나의 코어 페어(core pair), 및 상기 제1 타입 코어의 온도 및 작업량에 따라 상기 코어 페어에 서로 다른 DVFS 테이블을 적용하는 커널을 포함하는 전자 시스템이 제공된다.
상기 커널은 상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어의 상기 제2 타입 코어가 동작하도록 상기 코어 페어를 제어할 수 있다.
상기 커널은 상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어에 스로틀 DVFS 테이블을 적용하며, 상기 스로틀 DVFS 테이블은 상기 제2 타입 코어에 상응하는 성능 영역만 이용할 수 있다.
상기 커널은 상기 제1 타입 코어의 온도가 제2 기준 온도 이하이면 상기 코어 페어의 상기 제1 타입 코어가 동작하도록 상기 코어 페어를 제어할 수 있다.
본 발명의 또 다른 실시예에 따르면, 제1 타입 코어 및 상기 제1 타입 코어에 상응하는 적어도 하나의 제2 타입 코어를 포함하고, 상기 제1 타입 코어 및 상기 적어도 하나의 제2 타입 코어를 선택적으로 동작시키는 전자 시스템의 동작 방법에 있어서, 상기 제1 타입 코어의 온도를 측정하는 단계, 상기 제1 타입 코어의 온도가 제1 기준 온도 이상인지 판단하는 단계, 상기 제1 타입 코어의 온도가 상기 제1 기준 온도 이상이면, 상기 제1 타입 코어의 잡 큐를 상기 적어도 하나의 제2 타입 코어로 이동시키는 단계, 상기 제1 타입 코어를 클락 게이팅 또는 파워 게이팅하는 단계, 상기 제1 타입 코어의 온도가 제2 기준 온도 이하인지 판단하는 단계, 및 상기 제1 타입 코어의 온도가 상기 제2 기준 온도 이하이면, 상기 적어도 하나의 제2 타입 코어의 잡 큐를 상기 제1 타입 코어로 이동시키는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다.
상기 전자 시스템의 동작 방법은 상기 제1 타입 코어의 온도가 제3 기준 온도 이상인지 판단하는 단계, 및 상기 제1 타입 코어의 온도가 상기 제3 기준 온도 이상이면, 상기 제1 타입 코어에 인접한 제1 타입 코어들의 잡 큐를 상기 인접한 제1 타입 코어들에 상응하는 제2 타입 코어들로 이동시키는 단계를 더 포함할 수 있다.
본 발명의 실시예에 따르면 이종 멀티코어(Heterogeneous multi-core) 구조에서 온도상승에 따라 이종 코어 간의 코어 스위칭(core switching)을 수행하므로, AP(Application Processor)의 온도 조건을 만족시킬 수 있고, 물리적으로는 다른 코어를 사용함으로써 보다 효과적인 온도 관리(thermal management)를 수행할 수 있는 효과가 있다.
도 1은 본 발명의 실시예에 따른 전자 시스템의 블록도를 나타낸다.
도 2는 도 2의 CPU에 대해 구체적으로 나타낸 블록도이다.
도 3은 도 2의 CPU의 인-커널 스위칭(In-kernel switching) 시의 동작을 나타낸다.
도 4는 도 2의 스위쳐를 설명하기 위한 블록도이다.
도 5는 도 2의 CPU의 동작 일례를 나타낸다.
도 6은 각 코어 페어에 적용되는 DVFS 정책을 나타낸다.
도 7a는 본 발명의 일 실시예에 따른 DVFS 정책에 따라 이용 가능한 성능의 범위를 나타낸다.
도 7b는 도 7a의 코어 페어의 성능 및 전력 그래프를 나타낸다.
도 7c는 본 발명의 다른 실시예에 따른 코어 페어의 성능 및 전력 그래프를 나타낸다.
도 8은 노멀 DVFS 테이블을 스로틀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.
도 9는 스로틀 DVFS 테이블을 노멀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.
도 10은 도 2의 CPU의 동작의 일 실시예를 나타내는 순서도이다.
도 11은 도 2의 CPU의 동작의 다른 실시예를 나타내는 순서도이다.
도 12는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 실시예를 나타낸 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 전자 시스템의 블록도를 나타낸다.
도 1을 참조하면, 전자 시스템(1)은 이동 전화기, 스마트폰, 태블릿 PC (tablet personal computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 손으로 들고다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고다닐 수 있는 장치(handheld device)로 구현될 수 있다.
전자 시스템(1)은 시스템 온 칩(system on chip(SoC); 10), 외부 메모리 (30), 및 디스플레이 디바이스(20)를 포함한다.
SoC(10)는 중앙처리장치(central processing unit(CPU); 100), ROM(read only memory; 110), RAM(random access memory; 120), 타이머(130), 디스플레이 컨트롤러(140), 그래픽 프로세싱 유닛(graphics processing unit(GPU); 150), 메모리 컨트롤러(160), 클럭 관리 유닛(clock management unit(CMU); 170), 및 버스(180)를 포함할 수 있다. SoC(10)는 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다. 전자 시스템(1)은 전원관리 IC(power management IC(PMIC); 40)를 더 포함할 수 있다.
도 1의 실시 예에서, PMIC(40)가 SoC(10)의 외부에 구현되나, 다른 실시 예에서 SoC(10)는 PMIC(40)의 기능을 수행할 수 있는 전력 관리 유닛(power management unit(PMU))을 포함할 수 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(100)는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(100)는 CMU(170)로부터 출력된 동작 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
ROM(110), RAM(120), 및/또는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(100)의 메모리(미도시)에 로드(load)될 수 있다.
ROM(110)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다.
ROM(110)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(120)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(110 또는 30)에 저장된 프로그램들 및/또는 데이터는 CPU(100)의 제어에 따라 또는 ROM(110)에 저장된 부팅 코드(booting code)에 따라 RAM(120)에 일시적으로 저장될 수 있다. RAM(120)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
타이머(130)는 CMU(170)로부터 출력된 동작 클락 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.
GPU(150)는 메모리 컨트롤러(160)에 의해 외부 메모리(30)로부터 리드 (read)된 데이터를 디스플레이 디바이스(20)에 적합한 신호로 변환할 수 있다.
CMU(170)는 동작 클락 신호를 생성한다. CMU(170)는 위상 동기 루프(phase locked loop(PLL)), 지연 동기 루프(delayed locked loop(DLL)), 또는 크리스탈 오실레이터 등과 같은 클락 신호 생성 장치를 포함할 수 있다.
동작 클락 신호는 GPU(150)로 공급될 수 있다. 물론, 동작 클락 신호는 다른 구성 요소(예컨대, CPU(100) 또는 메모리 컨트롤러(160) 등)로 공급될 수도 있다. CMU(170)는 동작 클락 신호의 주파수를 변경할 수 있다.
CPU(100)는 이종멀티코어, 예컨대 제1 타입 코어 및 제2 타입 코어를 포함할 수 있다. 실시예에 따라 CPU(100)는 제1 타입 코어 및 제2 타입 코어 외에도 제3 타입 코어를 더 포함할 수 있다.
이하에서 제1 타입 코어는 고성능 코어 또는 빅 코어라고 지칭하고, 제2 타입 코어는 저전력 코어, 리틀 코어 또는 스몰 코어라고 지칭하기로 한다.
CPU(100)는 저전력 코어에 태스크를 할당하고 상기 태스크가 할당된 저전력 코어에서 CPU 로드를 측정하고, 측정된 CPU 로드가 저전력 코어에서 수행될 수 있는 작업 로드를 초과하면, 고성능 코어로 스위칭한다. 또한, CPU(100)는 측정된 CPU 로드에 기초하여 상기 고성능 코어에서 수행 중인 작업 로드가 저전력 코어에서도 수행할 수 있다고 판단되면, 고성능 코어로부터 저전력 코어로 역스위칭한다.
메모리 컨트롤러(160)는 외부 메모리(190)와 인터페이스한다. 메모리 컨트롤러(160)는 외부 메모리(190)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리 (190) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(160)는 호스트의 요청에 따라 외부 메모리(190)에 데이터를 쓰거나 외부 메모리(190)로부터 데이터를 읽을 수 있다.여기서, 호스트는 CPU(100), GPU(150), 또는 디스플레이 컨트롤러(140)와 같은 마스터(master) 장치일 수 있다.
외부 메모리(30)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(30)는 예컨대 DRAM 일수 있으나 이에 한정되는 것은 아니다.
예컨대, 외부 메모리(30)는 불휘발성 메모리 장치(예컨대, 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시 예에서 외부 메모리(30)는 SoC(10)의 내부에 구비되는 내장 메모리일 수 있다. 또한, 외부 메모리(30)는 플래시 메모리, eMMC(embedded multimedia card), 또는 UFS(universal flash storage)일 수 있다.
각 구성 요소(100, 110, 120, 130, 140, 150, 160 및 170)는 버스(180)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(20)는 디스플레이 컨트롤러(140)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스(20)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다.
디스플레이 컨트롤러(140)는 디스플레이 디바이스(25)의 동작을 제어한다.
도 2는 도 2의 CPU에 대해 구체적으로 나타낸 블록도이다.
도 2를 참조하면, CPU(100), 즉, 프로세서는 고성능 클러스터(Big Cluster, 220), 저전력 클러스터(Little Cluster,230), 커널(301), 및 CCI(Cache Coherent Interconnect, 210)를 포함한다.
CPU(100)에서 실행되는 적어도 하나의 애플리케이션(application, 미도시)은 코어(Core)가 태스크를 수행하도록 한다. 커널(301)은 각 애플리케이션으로부터 태스크를 수신하여 각 클러스터, 즉, 각 코어에 대해 자원할당을 수행한다.
고성능 클러스터(220)는 복수(예를 들어 N개)의 고성능 코어들(221) 및 제1 캐시(225)를 포함한다. 저전력 클러스터(230)는 복수(예를 들어 M개)의 저전력 코어들(231) 및 제2 캐시(235)를 포함한다. 고성능 코어(221)는 높은 전력을 소모하며 높은 동작 주파수로 동작한다. 저전력 코어(231)는 낮은 전력을 소모하며 낮은 동작 주파수로 동작한다. 고성능 코어의 개수(N)와 저전력 코어의 개수(M)는 다를 수도 있고, 같을 수도 있다.
프로세서(100)는 고성능 코어(221)와 저전력 코어(231)를 포함하며, 각 어플리케이션들에 의해 제공된 CPU 로드에 따라 적절한 코어를 동작시킨다. 프로세서(100)는 CPU 로드가 작으면 저전력 코어(231)를 동작시키고, CPU 로드가 크면 고성능 코어(221)를 동작시킨다.
또한 프로세서(100)는 동작 중의 코어의 개수에 대한 강제 조정, 사용자 설정(User's Configuration), 시스템 설정 등의 외부 요청에 따라 각 코어들의 동작을 제어하여 SoC(10)를 안정적으로 동작시킨다.
커널(301)은 저전력 코어(231)에서 측정된 CPU 로드가 임계값을 초과할 때 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 커널(301)은 고성능 코어(221)에서 측정된 CPU 로드가 제2 임계값보다 작아지면, 태스크(task)를 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다. 커널(301)의 스위칭 동작은 페어(pair) 관계에 있지 않은 코어 간에도 수행될 수 있다.
커널(301)에 의한 이종 코어(heterogeneous core) 간의 코어 스위칭을 실행하기 위해, 제2 캐시(235)는 제1 캐시(225)로 또는 제1 캐시(225)는 제2 캐시(235)로 CCI(210)를 통해 데이터를 동기화 시킨다. CCI(210)를 통한 캐시 간의 데이터 동기화로 인해 코어 스위칭시에 스위칭된 코어는 즉시 주어진 태스크를 실행할 수 있다.
제1 캐시(225) 및 제2 캐시(235)는 각 코어(221,231)에 포함된 캐시 메모리이다.
커널(301)은 서로 다른 성능의 코어를 스위칭하는 스위쳐(300)를 포함할 수 있다.
본 명세서에서 커널(301), 스위쳐(300)라 함은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수 있고, 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록매체, 예컨대 프로세서를 의미할 수도 있다.
즉, 각 구성요소(301,300)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
스위쳐(300)는 저전력 코어(231)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)를 초과하는 경우 상기 CPU 로드에 따른 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 스위쳐(300)는 고성능 코어(221)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)보다 작으면, 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다.
도 3은 도 2의 CPU의 인-커널 스위칭(In-kernel switching) 시의 동작을 나타낸다.
도 2 및 도 3을 참조하면, 인-커널 스위칭을 이용하는 경우 각 빅 코어(221-1~221-4)는 동적 또는 정적으로 상응하는 하나의 스몰 코어(231-1~231-4)에 매핑된다. 동적으로 매핑되는 경우, 빅 코어(221-1~221-4)에 상응하는 스몰 코어(231-1~231-4)는 동적으로 가변될 수 있다.
매핑되는 하나의 빅 코어 및 하나의 스몰 코어는 코어 페어(core pair)를 구성한다. 예컨대 제K(K는 1 이상의 정수) 코어 페어는 제K 빅 코어(221-K) 및 제K 리틀 코어(231-K)를 포함할 수 있다.
인-커널 스위칭 시, 각 코어 페어에서는 하나의 코어만이 선택적으로 동작하여 활성화될 수 있다. 예컨대 각 코어 페어에서 스몰 코어(231-1~231-4)만이 활성화될 수 있다.
커널(301)은 빅 코어(221-1~221-4)의 온도에 따라 각 코어 페어에 서로 다른 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 적용할 수 있다.
실시예에 따라, 스위쳐(300)는 각 코어 페어의 DVFS 동작점(operating point)에서 빅 코어와 리틀 코어 간의 코어 스위칭을 수행할 수 있다.
예컨대 스위쳐(300)는 제1 코어 페어에서 제1 리틀 코어(231-1)의 잡 큐(job queue)를 제1 빅 코어(221-1)로 이동(migration)시킨 후, 제1 리틀 코어(231-1)를 클락 게이팅 또는 파워 게이팅시킬 수 있다.
도 4는 도 2의 스위쳐를 설명하기 위한 블록도이다.
도 4를 참조하면, 스위쳐(Switcher, 300)는 CPU의 로드에 따라 고성능 코어(221-1 내지 221-N) 또는 저전력 코어(231-1 내지 231-M)를 동작시킨다.
예를 들어, 스위쳐(300)는 저전력 코어(231-3)에서 측정된 CPU 로드가 저전력(231-1) 코어의 작업용량(capability)를 초과하는 경우 저전력 코어(231-3)로부터 고성능 코어(221-N)로 스위칭한다. 스위쳐(300)은 고성능 코어(221-1)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)보다 작으면, 태스크(task)를 고성능 코어(221-1)로부터 저전력 코어(231-2)로 스위칭한다.
각 고성능 코어(예컨대, 221-1)는 각 고성능 코어(221-1)에 상응하는 하나의 저전력 코어(231-2)와 페어(pair) 관계에 있도록 유지될 수 있다.
다른 실시예에 따라, 각 고성능 코어(예컨대, 221-1)는 사용 중이지 않을 때에는 저전력 코어(231-2)와 페어를 이루지 않을 수 있다. 각 고성능 코어(221-1)는 사용 중일 때에는 상응하는 저전력 코어(231-2)와 페어를 이룰 수 있다. 이때 저전력 코어(231-2)는 고성능 코어(221-1)와 스위칭이 가능하도록 대기상태로 있을 수 있다.
도 5는 도 2의 CPU의 동작 일례를 나타낸다.
도 2 및 도 5를 참조하면, 빅 코어들(221-1~221-4) 각각의 온도는 기설정된 주기마다 측정될 수 있다. 실시예에 따라 빅 코어들(221-1~221-4) 각각은 온도 센서를 포함하고, 상기 온도 센서가 온도를 측정할 수 있다. 다른 실시예에 따라, 빅 코어 각각에 온도 센서가 내장되지 않고, 빅 코어에 인접한 다른 모듈에서 온도를 측정할 수 있다. 또 다른 실시예에 따라 온도 센서는 온도를 주기적으로 측정하지 않고, 특정 조건이 되면 인터럽트를 발생시킬 수 있다.
빅 코어의 온도에 따라, 빅 코어 및 상기 빅 코어에 상응하는 스몰 코어 간의 코어 스위칭이 수행될 수 있다.
예컨대 온도 센서는 기설정된 제1 기준온도 이상이 되면 인터럽트를 발생시킬 수 있다. 제1 빅 코어(221-1)의 온도가 제1 기준 온도 이상이 되는 경우, 스위쳐(300)는 제1 빅 코어(221-1)의 잡 큐(job queue)를 제1 스몰 코어(231-1)로 이동(migrate)시키고, 제1 빅 코어(221-1)를 클락 게이팅 또는 파워 게이팅시킬 수 있다.
헤테로지니어스(heterogeneous) 구조에서 스몰 코어는 온도적으로 안전(thermally safe)하다. 따라서, 빅 코어에서 스로틀(throttling)이 발생할 경우 스몰 코어만을 사용함으로써 빅 코어의 열에 의한 손상(thermal attack)을 방지하여 전자 시스템의 안정성을 증가시킬 수 있다.
스위쳐(300)는 기설정된 조건에 따라, 제1 빅 코어(221-1)에 인접한 빅 코어들(예컨대 221-2, 221-3)의 잡 큐를 상기 인접한 빅 코어들(221-2, 221-3)에 상응하는 스몰 코어들(231-2, 231-3)로 각각 이동시킬 수 있다.
예컨대 스위쳐(300)는 제1 빅 코어(221-1)의 온도가 제3 기준 온도 이상이 되는 경우 인접하는 빅 코어들(221-2, 221-3)의 잡 큐를 상응하는 스몰 코어들(231-2, 231-3)로 각각 이동시킬 수 있다. 스위쳐(300)는 인접하는 빅 코어들(221-2, 221-3)을 클락 게이팅 또는 파워 게이팅시킬 수 있다. 이때 제3 기준 온도는 제1 기준 온도보다 높은 값일 수 있다.
따라서 과열된 빅 코어의 온도를 보다 빨리 냉각시킬 수 있으므로 빅 코어의 열에 의한 손상(thermal attack)을 보다 효과적으로 방지할 수 있다.
스위쳐(300)는 제1 빅 코어(221-1)의 온도가 제2 기준 온도 이하가 되면, 잡 큐를 제1 스몰 코어(231-1)에서 제1 빅 코어(221-1)로 이동시킬 수 있다.
잦은 코어 스위칭에 의한 오버헤드를 막기 위하여, 제2 기준 온도는 제1 기준 온도보다 낮은 값으로 설정될 수 있다.
도 6은 각 코어 페어에 적용되는 DVFS 정책을 나타내고, 도 7a는 본 발명의 일 실시예에 따른 DVFS 정책에 따라 이용 가능한 성능의 범위를 나타낸다.
도 2, 도 6 및 도 7a을 참조하면, 이종 코어 시스템에서는 각 코어 페어마다 하나의 잡 큐(또는 프로세스, job queue)를 가진다.
커널(301)은 각 코어 페어를 제어할 수 있다. 각 코어 페어의 빅 코어(221-1~221-N)이 과열되지 않는 경우, 커널(301)은 각 코어 페어의 잡 큐에 대해 노멀(normal) DVFS 테이블을 사용할 수 있다.
노멀(normal) DVFS 테이블을 사용하는 경우, 각 코어 페어는 프로세스에 필요한 작업량(workload)에 따라 이에 맞는 성능(performance)를 발휘할 수 있는 코어(core)를 이용하고, 상기 코어에 동적 또는 정적으로 매핑(mapping)된 다른 코어는 파워 게이팅(power gating)할 수 있다.
예컨대, 제1 조합 내지 제(X+Y) 조합(E1~E(X+Y))은 각각 주파수 및/또는 전압을 나타내며, 제1 조합(E1)은 가장 낮은 주파수 및/또는 전압을 나타내고, 제(X+Y) 조합(E(X+Y))은 가장 높은 주파수 및/또는 전압을 나타낼 수 있다.
노멀 DVFS 테이블 사용시, 각 코어 페어는 프로세스의 작업량이 가장 낮은 경우 스몰 코어를 제1 조합(E1)에 따라 동작시킬 수 있고, 프로세스의 작업량(workload)이 가장 높은 경우 빅 코어를 제(X+Y) 조합(E(X+Y))에 따라 동작시킬 수 있다.
빅 코어(221-1~221-N)를 이용할 때, 하나의 빅 코어(예컨대 제1 빅 코어, 221-1)가 제1 기준 온도 이상이 되면, 과열된 제1 빅 코어(221-1)의 잡 큐를 제1 스몰 코어(231-1)로 이동(migrate)시켜야 한다.
커널(301)은 제1 코어 페어에 노멀 DVFS 테이블 대신 스로틀(throttled) DVFS 테이블을 적용할 수 있다.
실시예에 따라, 스로틀 DVFS 테이블은 제1 스몰 코어(231-1)에 상응하는 성능 영역만 이용할 수 있다. 예컨대 스로틀 DVFS 테이블은 제1 조합 내지 제X 조합(E1~EX)만을 이용할 수 있다.
따라서, 커널(301)의 제어에 따라 제1 코어 페어에서 제1 빅 코어(221-1)은 파워 게이팅 또는 클락 게이팅되고, 제1 스몰 코어(231-1)가 동작할 수 있다.
기준 성능(P) 이상의 성능이 요구되는 프로세스를 실행시킬 때 스로틀 DVFS 테이블이 적용되는 경우, 제1 스몰 코어(231-1)은 제X 조합(EX)을 이용할 수 있다. 그러나 본 발명의 실시예가 이에 한정되는 것은 아니다.
도 7b는 도 7a의 코어 페어의 성능 및 전력 그래프를 나타낸다.
도 7a 및 도 7b를 참조하면, 제(X+Y) 조합(E(X+Y))을 실행하던 제1 빅 코어(221-1)에서 열적 스로틀이 발생하여, 제(X+1) 조합(E(X+1))을 실행하도록 변경하는 경우, 제1 코어 페어는 제1 빅 코어(221-1)의 높은 온도로 인해 많은 전력을 소모한다.
한편, 제1 코어 페어가 높은 성능을 요구하는 프로세스를 실행하고 있다고 하더라도, 제1 빅 코어(221-1)가 과열되어 제(X+1) 조합(E(X+1))으로 변경된 경우, 제1 코어 페어는 제1 스몰 코어(231-1)의 제X 조합(EX)과 비슷한 성능만을 낼 수 있다.
따라서, 제1 빅 코어(221-1)에서 제1 스몰 코어(231-1)로 스위칭하여 제X 조합(EX)을 실행하도록 변경할 수 있다. 이는 기존의 제(X+1) 조합(E(X+1))을 실행하도록 변경하는 것과 비교할 때, 거의 같은 성능을 내면서도 보다 적은 전력을 소모하여 보다 안정적인 동작이 가능하도록 하는 효과가 있다.
도 7c는 본 발명의 다른 실시예에 따른 코어 페어의 성능 및 전력 그래프를 나타낸다.
도 7c를 참조하면, 실시예에 따라 빅 코어와 스몰 코어가 성능이 겹치는 구간을 갖도록 DVFS 테이블이 설정될 수도 있다. 빅 코어와 스몰 코어의 성능-전력 특성을 비교하면, 빅 코어 대신 스몰 코어를 사용하는 경우 동일한 성능에서는 전력 절감 효과가 있고, 동일한 전력 소모 시에는 성능 개선 효과가 있다. 따라서 빅 코어를 이에 상응하는 스몰 코어로 스위칭함으로써 빅 코어의 열에 의한 손상을 방지하면서 성능 및 전력을 효율적으로 관리할 수 있는 효과가 있다.
다시 도 2, 도 6 및 도 7a을 참조하면, 커널(301)은 제1 빅 코어(221-1)의 온도가 제2 기준 온도 이하이면 제1 코어 페어에 스로틀 DVFS 테이블 대신 노멀 DVFS 테이블을 적용하여, 제1 코어 페어의 제1 빅 코어(221-1)를 동작시킬 수 있다.
도 7a에서 노멀 DVFS 테이블 및 스로틀 DVFS 테이블은 스몰 코어에 상응하는 성능 영역에서 동일한 조합 값(E1~EX)을 갖도록 도시하였다. 그러나 실시예에 따라, 노멀 DVFS 테이블 및 스로틀 DVFS 테이블은 스몰 코어에 상응하는 성능 영역에서 서로 다르게 설정될 수 있다.
예컨대 스로틀 DVFS 테이블에서 기준 성능(P) 이하의 조합의 수를 X와 다른 Z(Z는 1 이상의 정수)개로 설정할 수 있다. 실시예에 따라, Z는 X보다 큰 값일 수 있다.
따라서 빅 코어의 과열에 따라 스몰 코어에 프로세스가 집중될 때, 스몰 코어를 보다 효율적으로 제어할 수 있다.
노멀 DVFS 테이블 및 스로틀 DVFS 테이블 각각은 빅 코어의 활성화 개수에 따라 달리 설정될 수 있다. 실시예에 따라, 노멀 DVFS 테이블 및 스로틀 DVFS 테이블 각각은 활성화된 빅 코어의 위치에 따라 달리 설정될 수 있다.
예컨대 빅 코어가 보다 많이 활성화되거나, 인접한 빅 코어들이 활성화되는 경우, 열에 의한 위험이 더 클 수 있다. 따라서 해당하는 코어 페어의 노멀 DVFS 테이블 또는 스로틀 DVFS 테이블은 보다 낮은 동작 주파수 및 동작 전압을 갖도록 설정될 수 있다.
도 8은 노멀 DVFS 테이블을 스로틀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.
도 8을 참조하면, 빅 코어의 온도를 측정한다(S11).
빅 코어의 온도가 제1 기준 온도(또는 상한 임계값이라고 칭함)보다 높은지 판단한다(S13).
빅 코어의 온도가 상한 임계값보다 높으면, 해당하는 코어 페어의 DVFS 테이블을 스로틀 DVFS 테이블로 변경한다(S15).
도 9는 스로틀 DVFS 테이블을 노멀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.
도 9를 참조하면, 빅 코어의 온도를 측정한다(S21).
빅 코어의 온도가 제2 기준 온도(또는 하한 임계값이라고 칭함)보다 낮은지 판단한다(S23).
빅 코어의 온도가 하한 임계값보다 낮으면, 해당하는 코어 페어의 DVFS 테이블을 노멀 DVFS 테이블로 변경한다(S25).
도 10은 도 2의 CPU의 동작의 일 실시예를 나타내는 순서도이다.
도 2, 도 3 및 도 10을 참조하면, 각 빅 코어(221-1~221-4)의 온도 및 작업량이 측정된다(S31). 온도는 각 빅 코어(221-1~221-4)에 구비된 온도 센서에 의해 측정될 수 있다.
스위쳐(300)는 빅 코어(221-1~221-4)의 온도 및 작업량에 따라 빅 코어(221-1~221-4) 및 스몰 코어(231-1~231-4) 간의 코어 스위칭을 수행한다(S33).
도 11은 도 2의 CPU의 동작의 다른 실시예를 나타내는 순서도이다.
도 2, 도 3 및 도 11을 참조하면, 커널(301)은 제1 타입 코어(예컨대 221-1)의 온도가 제1 기준 온도 이상인지 판단한다(S41).
커널(301)은 제1 타입 코어(221-1)의 온도가 제1 기준 온도 이상이면, 제1 타입 코어(221-1)의 잡 큐를 제2 타입 코어(231-1)로 이동시킨다(S43).
이후 커널(301)은 제1 타입 코어(221-1)를 클락 게이팅 또는 파워 게이팅한다(S45).
실시예에 따라, 커널(301)은 제1 타입 코어(221-1)의 온도가 제3 기준 온도 이상인지 판단할 수 있다. 제1 타입 코어(221-1)의 온도가 제3 기준 온도 이상이면, 커널(301)은 제1 타입 코어(221-1)에 인접한 제1 타입 코어들(221-2, 221-3)의 잡 큐를 상기 인접한 제1 타입 코어들(221-2, 221-3)에 상응하는 제2 타입 코어들(231-2, 231-3)로 이동시킬 수 있다.
커널(301)은 제1 타입 코어(221-1)의 온도가 제2 기준 온도 이하인지 판단한다(S47).
커널(301)은 제1 타입 코어(221-1)의 온도가 제2 기준 온도 이하이면, 제2 타입 코어(231-1)의 잡 큐를 제1 타입 코어(221-1)로 이동시킨다(S49).
도 12는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 실시예를 나타낸 블록도이다.
도 12를 참조하면, 전자 시스템은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.
상기 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트 폰 (smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다.
전자 시스템은 SoC(10), 파워 소스(910), 스토리지(920), 메모리 (930), 입출력 포트(940), 확장 카드(950), 네트워크 디바이스(960), 및 디스플레이(970)를 포함한다. 실시 예에 따라. 전자 시스템은 카메라 모듈(980)을 더 포함할 수 있다.
SoC(10)는 도 1에 도시된 CPU(100)를 포함할 수 있다. 이때, CPU(100)는 멀티-코어 프로세서일 수 있다.
SoC(10)는 구성 요소들(elements; 910~980) 중에서 적어도 하나의 동작을 제어할 수 있다.
파워 소스(910)는 구성 요소들(100, 및 910~980) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.파워 소스(910)는 도 1의 PMIC(40)에 의해 제어될 수 있다.
스토리지(920)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(930)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 도 1의 외부 메모리(30)에 해당할 수 있다. 실시 예에 따라, 메모리(930)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(10)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 SoC(10)와 메모리(930) 사이에 구현될 수 있다.
입출력 포트(940)는 전자 시스템으로 데이터를 전송하거나 또는 전자 시스템(10)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(940)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(950)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(950)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.
네트워크 디바이스(960)는 전자 시스템을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(970)는 스토리지(920), 메모리(930), 입출력 포트(940), 확장 카드(950), 또는 네트워크 디바이스(960)로부터 출력된 데이터를 디스플레이할 수 있다. 디스플레이(970)는 도 1의 디스플레이 디바이스(20)일 수 있다.
카메라 모듈(980)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(980)로부터 출력된 전기적인 이미지는 스토리지(920), 메모리(930), 또는 확장 카드(950)에 저장될 수 있다. 또한, 카메라 모듈 (980)로부터 출력된 전기적인 이미지는 디스플레이(970)를 통하여 디스플레이될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
1: 전자 시스템 10: SoC
20: 디스플레이 디바이스 30: 외부 메모리
40: PMIC 100: CPU
130: 타이머 140: 디스플레이 컨트롤러
150: GPU 160: 메모리 컨트롤러
170: CMU 210: CCI
220: 고성능 클러스터 230: 저전력 클러스터
300: 스위쳐 301: 커널
221-1~221-4: 빅 코어 231-1~231-4: 스몰 코어

Claims (20)

  1. 이종멀티코어를 포함하는 전자 시스템의 동작 방법에 있어서,
    빅 코어의 온도 및 작업량(workload)를 측정하는 단계; 및
    상기 빅 코어의 온도 및 작업량에 따라, 상기 빅 코어 및 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어 간의 코어 스위칭을 수행하는 단계를 포함하며,
    상기 빅 코어는 상기 적어도 하나의 스몰 코어에 비하여 고성능 및 고전력 코어인 전자 시스템의 동작 방법.
  2. 제1항에 있어서, 상기 빅 코어는 동적 또는 정적으로 상기 적어도 하나의 스몰 코어에 매핑되어 코어 페어를 구성하며,
    상기 전자 시스템은 상기 코어 페어에서 하나의 코어를 활성화하여 동작시킬 때는 다른 코어는 비활성화시키는 인-커널 스위칭(In-kernel switching)을 사용하는 전자 시스템의 동작 방법.
  3. 제1항에 있어서, 상기 코어 스위칭을 수행하는 단계는
    상기 빅 코어의 온도가 제1 기준 온도 이상이 되면, 상기 빅 코어의 잡 큐(job queue)를 상기 적어도 하나의 스몰 코어로 이동(migrate)시키는 단계; 및
    상기 빅 코어를 클락 게이팅 또는 파워 게이팅하는 단계를 포함하는 전자 시스템의 동작 방법.
  4. 제3항에 있어서, 상기 빅 코어의 잡 큐를 상기 적어도 하나의 스몰 코어로 이동시키는 단계는
    상기 빅 코어에 상응하는 노멀 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 스로틀(throttled) DVFS 테이블로 변경하는 단계를 포함하고,
    상기 스로틀 DVFS 테이블은
    상기 스몰 코어에 상응하는 성능 영역만 이용하는 전자 시스템의 동작 방법.
  5. 제4항에 있어서, 상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블은
    상기 적어도 하나의 스몰 코어에 상응하는 성능 영역에서 서로 다른 전자 시스템의 동작 방법.
  6. 제4항에 있어서, 상기 전자 시스템은
    상기 빅 코어를 복수 개 포함하고,
    상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블 각각은
    상기 빅 코어의 활성화 개수에 따라 다른 전자 시스템의 동작 방법.
  7. 제4항에 있어서, 상기 코어 스위칭을 수행하는 단계는
    상기 빅 코어의 온도가 제2 기준 온도 이하가 되면, 상기 잡 큐를 상기 빅 코어로 이동시키는 단계를 더 포함하는 전자 시스템의 동작 방법.
  8. 제7항에 있어서, 상기 제2 기준 온도는
    상기 제1 기준 온도보다 낮은 전자 시스템의 동작 방법.
  9. 제1항에 있어서, 상기 빅 코어의 온도는
    상기 빅 코어에 구비되는 온도 센서에 의해 측정되는 전자 시스템의 동작 방법.
  10. 제3항에 있어서, 상기 코어 스위칭을 수행하는 단계는
    기설정된 조건에 따라, 상기 빅 코어에 인접한 빅 코어들의 잡 큐를 상기 인접한 빅 코어들에 상응하는 스몰 코어들로 이동시키는 단계를 더 포함하는 전자 시스템의 동작 방법.
  11. 제1항에 있어서, 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어는
    동적으로 가변되는 전자 시스템의 동작 방법.
  12. 제1항에 있어서, 상기 전자 시스템은
    상기 빅 코어를 N(N은 1 이상의 정수)개 포함하고, 상기 스몰 코어를 M(M은 1 이상의 정수)개 포함하며,
    상기 N은 M과 다른 전자 시스템의 동작 방법.
  13. 제1항에 있어서, 상기 전자 시스템은
    시스템-온 칩(System-on Chip; SoC)인 전자 시스템의 동작 방법.
  14. N(N은 1 이상의 정수)개의 고성능 코어들을 포함하는 고성능 클러스터;
    M(M은 1 이상의 정수)개의 저전력 코어들을 포함하는 저전력 클러스터; 및
    상기 각 고성능 코어의 온도 및 작업량에 따라 상기 각 고성능 코어 및 상기 고성능 코어에 상응하는 적어도 하나의 저전력 코어 간에 코어 스위칭을 수행하는 스위쳐를 포함하는 전자 시스템.
  15. 제14항에 있어서, 상기 고성능 코어들 각각은
    상기 저전력 코어들 중 어느 하나에 동적 또는 정적으로 매핑되는 전자 시스템.
  16. 제14항에 있어서, 상기 스위쳐는
    적어도 하나의 상기 고성능 코어의 온도가 제1 기준 온도 이상이 되면, 상기 고성능 코어의 잡 큐(job queue)를 상기 고성능 코어에 상응하는 저전력 코어로 이동(migrate)시키는 전자 시스템.
  17. 각각이 제1 타입 코어 및 상기 제1 타입 코어와 성능 또는 전력 특성이 다른 제2 타입 코어를 포함하고, 상기 제1 타입 코어 및 상기 제2 타입 코어 중 하나가 선택적으로 동작하는 적어도 하나의 코어 페어(core pair); 및
    상기 제1 타입 코어의 온도 및 작업량에 따라 상기 코어 페어에 서로 다른 DVFS 테이블을 적용하는 커널을 포함하는 전자 시스템.
  18. 제17항에 있어서, 상기 커널은
    상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어의 상기 제2 타입 코어가 동작하도록 상기 코어 페어를 제어하는 전자 시스템.
  19. 제17항에 있어서, 상기 커널은
    상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어에 스로틀 DVFS 테이블을 적용하며,
    상기 스로틀 DVFS 테이블은
    상기 제2 타입 코어에 상응하는 성능 영역만 이용하는 전자 시스템.
  20. 제17항에 있어서, 상기 커널은
    상기 제1 타입 코어의 온도가 제2 기준 온도 이하이면 상기 코어 페어의 상기 제1 타입 코어가 동작하도록 상기 코어 페어를 제어하는 전자 시스템.
KR1020130131589A 2013-10-31 2013-10-31 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 KR20150050135A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020130131589A KR20150050135A (ko) 2013-10-31 2013-10-31 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US14/505,952 US9588577B2 (en) 2013-10-31 2014-10-03 Electronic systems including heterogeneous multi-core processors and methods of operating same
TW103135430A TWI675289B (zh) 2013-10-31 2014-10-14 包含異質多核心處理器的電子系統及其操作方法
CN201410602301.1A CN104679586B (zh) 2013-10-31 2014-10-31 包括异构多核处理器的电子系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130131589A KR20150050135A (ko) 2013-10-31 2013-10-31 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200068738A Division KR102166644B1 (ko) 2020-06-08 2020-06-08 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20150050135A true KR20150050135A (ko) 2015-05-08

Family

ID=52996847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130131589A KR20150050135A (ko) 2013-10-31 2013-10-31 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법

Country Status (4)

Country Link
US (1) US9588577B2 (ko)
KR (1) KR20150050135A (ko)
CN (1) CN104679586B (ko)
TW (1) TWI675289B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868877B2 (en) 2017-09-06 2024-01-09 Semiconductor Energy Laboratory Co., Ltd. Arithmetic device and electronic device

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
US20160327999A1 (en) * 2014-09-17 2016-11-10 Mediatek Inc. Dynamic frequency scaling in multi-processor systems
US9898071B2 (en) * 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9703358B2 (en) * 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US10101786B2 (en) 2014-12-22 2018-10-16 Intel Corporation Holistic global performance and power management
US10466754B2 (en) * 2014-12-26 2019-11-05 Intel Corporation Dynamic hierarchical performance balancing of computational resources
US10628214B2 (en) * 2015-06-01 2020-04-21 Samsung Electronics Co., Ltd. Method for scheduling entity in multicore processor system
US10234932B2 (en) * 2015-07-22 2019-03-19 Futurewei Technologies, Inc. Method and apparatus for a multiple-processor system
CN105068872B (zh) * 2015-07-28 2018-11-23 深圳市万普拉斯科技有限公司 运算单元的控制方法和系统
CN105045359A (zh) * 2015-07-28 2015-11-11 深圳市万普拉斯科技有限公司 散热控制方法和装置
KR102375925B1 (ko) * 2015-08-31 2022-03-17 삼성전자주식회사 Cpu의 작동 방법과 상기 cpu를 포함하는 시스템의 작동 방법
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
US20170083336A1 (en) * 2015-09-23 2017-03-23 Mediatek Inc. Processor equipped with hybrid core architecture, and associated method
KR20170069730A (ko) * 2015-12-11 2017-06-21 삼성전자주식회사 온도 및 공간적인 위치에 따라 코어들의 동작들을 관리하는 연산 처리 장치, 및 연산 처리 장치를 포함하는 전자 장치
US10621008B2 (en) 2016-01-25 2020-04-14 Htc Corporation Electronic device with multi-core processor and management method for multi-core processor
US10255106B2 (en) 2016-01-27 2019-04-09 Qualcomm Incorporated Prediction-based power management strategy for GPU compute workloads
KR102578648B1 (ko) * 2016-03-14 2023-09-13 삼성전자주식회사 모뎀 데이터에 따라 코어 스위칭이 수행되는 애플리케이션 프로세서 및 이를 포함하는 시스템 온 칩
US10496141B2 (en) 2016-03-17 2019-12-03 Qualcomm Incorporated System and method for intelligent thermal management in a system on a chip having a heterogeneous cluster architecture
US10503524B2 (en) 2016-03-22 2019-12-10 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Interception of a function call, selecting a function from available functions and rerouting the function call
US10860499B2 (en) 2016-03-22 2020-12-08 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Dynamic memory management in workload acceleration
US10203747B2 (en) 2016-03-22 2019-02-12 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Workload placement based on heterogeneous compute performance per watt
US10884761B2 (en) * 2016-03-22 2021-01-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Best performance delivery in heterogeneous computing unit environment
CN106095544B (zh) * 2016-05-31 2019-10-11 北京小米移动软件有限公司 中央处理器控制方法及装置
CN106776004A (zh) * 2016-11-18 2017-05-31 努比亚技术有限公司 Cpu资源分配装置及方法
TWI693548B (zh) * 2016-12-07 2020-05-11 聯發科技股份有限公司 動態調整多核心處理器的任務負載配置的裝置以及方法
CN106774808B (zh) * 2016-12-22 2019-11-26 杭州朔天科技有限公司 一种异构多核芯片的多级低功耗管理单元及其方法
CN106776039B (zh) * 2016-12-30 2020-04-03 Oppo广东移动通信有限公司 一种数据处理方法及装置
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
US11080095B2 (en) * 2017-06-04 2021-08-03 Apple Inc. Scheduling of work interval objects in an AMP architecture using a closed loop performance controller
CN107390834A (zh) * 2017-06-30 2017-11-24 广东欧珀移动通信有限公司 终端设备、温升控制方法、控制装置及存储介质
US11119830B2 (en) * 2017-12-18 2021-09-14 International Business Machines Corporation Thread migration and shared cache fencing based on processor core temperature
CN109996185B (zh) * 2017-12-29 2022-02-15 腾讯科技(深圳)有限公司 终端的定位方法和装置、存储介质、电子装置
US11579770B2 (en) 2018-03-15 2023-02-14 Western Digital Technologies, Inc. Volatility management for memory device
US11157319B2 (en) * 2018-06-06 2021-10-26 Western Digital Technologies, Inc. Processor with processor memory pairs for improved process switching and methods thereof
US11048540B2 (en) * 2018-06-29 2021-06-29 Intel Corporation Methods and apparatus to manage heat in a central processing unit
US11119788B2 (en) * 2018-09-04 2021-09-14 Apple Inc. Serialization floors and deadline driven control for performance optimization of asymmetric multiprocessor systems
CN109445918B (zh) * 2018-10-17 2021-06-18 Oppo广东移动通信有限公司 任务调度方法、装置、终端及存储介质
JP7146622B2 (ja) * 2018-12-26 2022-10-04 ルネサスエレクトロニクス株式会社 半導体装置、温度制御装置、及び方法
KR20210045544A (ko) 2019-10-16 2021-04-27 삼성전자주식회사 클럭 사이클에 기반하여 전력을 모니터링하는 동적 전력 모니터, 프로세서, 및 시스템 온 칩
CN110764605B (zh) * 2019-10-30 2021-11-02 Oppo广东移动通信有限公司 多核处理器控制方法、装置、电子设备及存储介质
KR20210101081A (ko) * 2020-02-07 2021-08-18 삼성전자주식회사 프로세스를 제어하는 전자 장치 및 그 방법
CN112181124B (zh) * 2020-09-11 2023-09-01 华为技术有限公司 功耗管理的方法和相关设备
KR20220036232A (ko) * 2020-09-15 2022-03-22 에스케이하이닉스 주식회사 전자 장치 및 전자 장치의 동작 방법
CN114690883A (zh) * 2020-12-28 2022-07-01 Oppo广东移动通信有限公司 可穿戴设备控制方法、装置、可穿戴设备以及存储介质
KR102570905B1 (ko) * 2021-05-17 2023-08-29 주식회사 엘지유플러스 클라우드 환경에서의 컨테이너 기반 자원의 최적화 시스템
CN113553176A (zh) * 2021-07-13 2021-10-26 北京比特大陆科技有限公司 芯片的内核切换方法、芯片、电子设备及存储介质
CN118159947A (zh) * 2021-11-25 2024-06-07 华为云计算技术有限公司 用于处理任务请求的方法和计算设备
CN114637387B (zh) * 2022-05-09 2022-10-11 南京芯驰半导体科技有限公司 一种多核异构芯片的性能与功耗管理系统及方法
US20230367377A1 (en) * 2022-05-10 2023-11-16 Western Digital Technologies, Inc. Solid-state device with multi-tier extreme thermal throttling
CN115237582B (zh) * 2022-09-22 2022-12-09 摩尔线程智能科技(北京)有限责任公司 处理多个任务的方法、处理设备以及异构计算系统

Family Cites Families (77)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7167993B1 (en) 1994-06-20 2007-01-23 Thomas C Douglass Thermal and power management for computer systems
JPH0816531A (ja) 1994-06-28 1996-01-19 Hitachi Ltd プロセススケジュール方式
US6631474B1 (en) * 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
GB0011974D0 (en) * 2000-05-19 2000-07-05 Smith Neale B rocessor with load balancing
EP1182548A3 (en) 2000-08-21 2003-10-15 Texas Instruments France Dynamic hardware control for energy management systems using task attributes
JP2002189602A (ja) 2000-12-22 2002-07-05 Toshiba Corp プロセッサ及びプロセッサの発熱予測制御プログラムを記録した記録媒体
US7231531B2 (en) 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
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
JP2004126968A (ja) 2002-10-03 2004-04-22 Fujitsu Ltd 並列計算機のジョブスケジューリング装置
US20040122973A1 (en) 2002-12-19 2004-06-24 Advanced Micro Devices, Inc. System and method for programming hyper transport routing tables on multiprocessor systems
JP2004240669A (ja) 2003-02-05 2004-08-26 Sharp Corp ジョブスケジューラおよびマルチプロセッサシステム
US7093147B2 (en) * 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US20050050310A1 (en) 2003-07-15 2005-03-03 Bailey Daniel W. Method, system, and apparatus for improving multi-core processor performance
US8237386B2 (en) 2003-08-15 2012-08-07 Apple Inc. Methods and apparatuses for operating a data processing system
US8224639B2 (en) 2004-03-29 2012-07-17 Sony Computer Entertainment Inc. Methods and apparatus for achieving thermal management using processing task scheduling
JP3830491B2 (ja) 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
JP2005316764A (ja) 2004-04-28 2005-11-10 Toshiba Corp 情報処理装置および同装置のシステム制御方法
JP3862715B2 (ja) 2004-06-01 2006-12-27 株式会社ソニー・コンピュータエンタテインメント タスク管理方法、タスク管理装置、半導体集積回路、電子装置、およびタスク管理システム
JP3805344B2 (ja) 2004-06-22 2006-08-02 株式会社ソニー・コンピュータエンタテインメント プロセッサ、情報処理装置およびプロセッサの制御方法
JP4197672B2 (ja) 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びプログラム
JP4197673B2 (ja) 2004-09-30 2008-12-17 株式会社東芝 マルチプロセッサ計算機及びタスク実行方法
US9063785B2 (en) 2004-11-03 2015-06-23 Intel Corporation Temperature-based thread scheduling
JP3914230B2 (ja) 2004-11-04 2007-05-16 株式会社東芝 プロセッサシステム及びその制御方法
US7793291B2 (en) 2004-12-22 2010-09-07 International Business Machines Corporation Thermal management of a multi-processor computer system
US7194645B2 (en) 2005-02-09 2007-03-20 International Business Machines Corporation Method and apparatus for autonomic policy-based thermal management in a data processing system
US7454631B1 (en) 2005-03-11 2008-11-18 Sun Microsystems, Inc. Method and apparatus for controlling power consumption in multiprocessor chip
JP2006277637A (ja) 2005-03-30 2006-10-12 Nec Corp 温度監視によってジョブを割り当てるマルチプロセッサ計算機システム、及びコンピュータプログラム
US7461275B2 (en) * 2005-09-30 2008-12-02 Intel Corporation Dynamic core swapping
US7512513B2 (en) 2005-11-29 2009-03-31 International Business Machines Corporation Thermal throttling control for testing of real-time software
US7460932B2 (en) 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
JP4653841B2 (ja) 2006-02-28 2011-03-16 インテル・コーポレーション 多数コアプロセッサの信頼性強化
US7784050B2 (en) 2006-03-09 2010-08-24 Harris Technology, Llc Temperature management system for a multiple core chip
US7596430B2 (en) 2006-05-03 2009-09-29 International Business Machines Corporation Selection of processor cores for optimal thermal performance
US7617403B2 (en) 2006-07-26 2009-11-10 International Business Machines Corporation Method and apparatus for controlling heat generation in a multi-core processor
US8214660B2 (en) 2006-07-26 2012-07-03 International Business Machines Corporation Structure for an apparatus for monitoring and controlling heat generation in a multi-core processor
US7584369B2 (en) 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US20080127192A1 (en) * 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US20080115010A1 (en) 2006-11-15 2008-05-15 Rothman Michael A System and method to establish fine-grained platform control
US7992151B2 (en) * 2006-11-30 2011-08-02 Intel Corporation Methods and apparatuses for core allocations
US7886172B2 (en) 2007-08-27 2011-02-08 International Business Machines Corporation Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management
US7934110B2 (en) 2007-09-25 2011-04-26 Intel Corporation Dynamically managing thermal levels in a processing system
US20090089792A1 (en) 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for managing thermal asymmetries in a multi-core processor
JP2009110404A (ja) 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
US8032772B2 (en) 2007-11-15 2011-10-04 Intel Corporation Method, apparatus, and system for optimizing frequency and performance in a multi-die microprocessor
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
US8209493B2 (en) 2008-03-26 2012-06-26 Intel Corporation Systems and methods for scheduling memory requests during memory throttling
CN101814048A (zh) * 2009-02-23 2010-08-25 鸿富锦精密工业(深圳)有限公司 主机板
JP2010231511A (ja) 2009-03-27 2010-10-14 Panasonic Corp 情報処理装置および情報処理方法
US8224693B2 (en) 2009-05-14 2012-07-17 Hewlett-Packard Development Company, L.P. Advertisement selection based on key words
JP4585598B1 (ja) 2009-06-30 2010-11-24 株式会社東芝 情報処理装置
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8543857B2 (en) * 2009-09-26 2013-09-24 Intel Corporation Method and apparatus for low power operation of multi-core processors
US20110138395A1 (en) 2009-12-08 2011-06-09 Empire Technology Development Llc Thermal management in multi-core processor
US8595731B2 (en) 2010-02-02 2013-11-26 International Business Machines Corporation Low overhead dynamic thermal management in many-core cluster architecture
US8418187B2 (en) * 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
JP5621287B2 (ja) 2010-03-17 2014-11-12 富士通株式会社 負荷分散システムおよびコンピュータプログラム
KR20110128023A (ko) 2010-05-20 2011-11-28 삼성전자주식회사 멀티 코어 프로세서, 멀티 코어 프로세서의 태스크 스케줄링 장치 및 방법
US8424006B2 (en) 2010-06-03 2013-04-16 International Business Machines Corporation Task assignment on heterogeneous three-dimensional/stacked microarchitectures
US20110320766A1 (en) 2010-06-29 2011-12-29 Youfeng Wu Apparatus, method, and system for improving power, performance efficiency by coupling a first core type with a second core type
US8495395B2 (en) 2010-09-14 2013-07-23 Advanced Micro Devices Mechanism for controlling power consumption in a processing node
US8776069B2 (en) 2010-12-07 2014-07-08 International Business Machines Corporation Energy and performance optimizing job scheduling
KR101770587B1 (ko) 2011-02-21 2017-08-24 삼성전자주식회사 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8484496B2 (en) * 2011-04-22 2013-07-09 Qualcomm Incorporated Method and system for thermal management of battery charging concurrencies in a portable computing device
TWI561995B (en) * 2011-04-26 2016-12-11 Intel Corp Load balancing in heterogeneous computing environments
KR20120131797A (ko) 2011-05-26 2012-12-05 서울대학교산학협력단 프로세서 온도 정보를 이용한 프로세서 전력/발열 모델의 동적 계산
JP2013025541A (ja) 2011-07-20 2013-02-04 Kyocera Corp マルチプロセッサシステムのタスク処理方法
US9513884B2 (en) 2011-08-16 2016-12-06 International Business Machines Corporation Thermal-aware source code compilation
US8575993B2 (en) 2011-08-17 2013-11-05 Broadcom Corporation Integrated circuit with pre-heating for reduced subthreshold leakage
US8601300B2 (en) * 2011-09-21 2013-12-03 Qualcomm Incorporated System and method for managing thermal energy generation in a heterogeneous multi-core processor
KR101858159B1 (ko) * 2012-05-08 2018-06-28 삼성전자주식회사 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템
CN102707996A (zh) * 2012-05-15 2012-10-03 江苏中科梦兰电子科技有限公司 一种异构多核处理器上的任务调度方法
KR102005765B1 (ko) * 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
CN103294550B (zh) * 2013-05-29 2016-08-10 中国科学院计算技术研究所 一种异构多核线程调度方法、系统及异构多核处理器
US9715272B2 (en) * 2014-04-24 2017-07-25 Htc Corporation Portable electronic device and core swapping method thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11868877B2 (en) 2017-09-06 2024-01-09 Semiconductor Energy Laboratory Co., Ltd. Arithmetic device and electronic device

Also Published As

Publication number Publication date
CN104679586A (zh) 2015-06-03
US9588577B2 (en) 2017-03-07
CN104679586B (zh) 2020-10-27
TWI675289B (zh) 2019-10-21
US20150121105A1 (en) 2015-04-30
TW201527950A (zh) 2015-07-16

Similar Documents

Publication Publication Date Title
KR20150050135A (ko) 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
KR102082859B1 (ko) 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
KR102005765B1 (ko) 시스템-온 칩과, 이의 동작 방법
KR101703467B1 (ko) 액티브 프로세서에 기초한 동적 전압 및 주파수 관리
US20130262894A1 (en) System-on-chip, electronic system including same, and method controlling same
CN110109527B (zh) 动态电压裕度恢复
US11693466B2 (en) Application processor and system on chip
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
US9766647B2 (en) Clock circuit for generating clock signal and semiconductor integrated circuit device including the same
US9996398B2 (en) Application processor and system on chip
US9785447B2 (en) System standby emulation with fast resume
TWI553549B (zh) 包括多個不同處理器核心之處理器
US8717371B1 (en) Transitioning between operational modes in a hybrid graphics system
KR102166644B1 (ko) 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
US20240036627A1 (en) System on chip and semiconductor device including the same
KR20230124248A (ko) Dvfs 제어 방법, 이를 이용한 반도체 장치 및 반도체 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X601 Decision of rejection after re-examination
A107 Divisional application of patent