KR102166644B1 - Electronic system including a plurality of heterogeneous cores and operating method therof - Google Patents

Electronic system including a plurality of heterogeneous cores and operating method therof Download PDF

Info

Publication number
KR102166644B1
KR102166644B1 KR1020200068738A KR20200068738A KR102166644B1 KR 102166644 B1 KR102166644 B1 KR 102166644B1 KR 1020200068738 A KR1020200068738 A KR 1020200068738A KR 20200068738 A KR20200068738 A KR 20200068738A KR 102166644 B1 KR102166644 B1 KR 102166644B1
Authority
KR
South Korea
Prior art keywords
core
big
small
cores
pair
Prior art date
Application number
KR1020200068738A
Other languages
Korean (ko)
Other versions
KR20200068635A (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 KR1020200068738A priority Critical patent/KR102166644B1/en
Publication of KR20200068635A publication Critical patent/KR20200068635A/en
Application granted granted Critical
Publication of KR102166644B1 publication Critical patent/KR102166644B1/en

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

Abstract

본 발명의 일 실시예에 따르면, 이종멀티코어를 포함하는 전자 시스템의 동작 방법에 있어서, 빅 코어의 온도 및 작업량(workload)를 측정하는 단계, 및 상기 빅 코어의 온도 및 작업량에 따라, 상기 빅 코어 및 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어 간의 코어 스위칭을 수행하는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다. 상기 빅 코어는 상기 적어도 하나의 스몰 코어에 비하여 고성능 및 고전력 코어이다.According to an embodiment of the present invention, in a method of operating an electronic system including heterogeneous multi-cores, measuring the temperature and workload of the big core, and according to the temperature and workload of the big core, the big There is provided a method of operating an electronic system comprising performing core switching between a core and at least one small core corresponding to the big core. The big core is a high performance and high power core compared to the at least one small core.

Description

복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법{ELECTRONIC SYSTEM INCLUDING A PLURALITY OF HETEROGENEOUS CORES AND OPERATING METHOD THEROF}Electronic system including a plurality of heterogeneous cores and its operation method {ELECTRONIC SYSTEM INCLUDING A PLURALITY OF HETEROGENEOUS CORES AND OPERATING METHOD THEROF}

본 발명은 전자 시스템 및 이의 동작 방법에 관한 것으로, 특히 저전력 코어와 고성능 코어를 포함하는 전자 시스템 및 이의 동작 방법에 관한 것이다.The present invention relates to an electronic system and a method of operation thereof, and more particularly to an electronic system including a low-power core and a high-performance core, and a method of operation thereof.

모바일용 어플리케이션 프로세서는 빠른 성능과 낮은 소모전류를 보장하기 위해 고성능 코어와 저전력 코어를 하나의 칩에 구현하여 사용한다. The mobile application processor uses a high-performance core and a low-power core implemented in one chip to ensure fast performance and low current consumption.

고성능 코어는 사용시 높은 파워소모와 발열 및 안정성 문제가 있다. 저전력 코어는 파워소모는 적으나 태스크 처리속도 및 처리용량에 한계가 있다. The high-performance core has high power consumption, heat generation, and stability problems when used. The low-power core consumes little power, but has limitations in task processing speed and processing capacity.

저전력 코어가 사용되다가 CPU 로드(load)가 증가하면 상기 저전력 코어에서 고성능 코어로 스위칭된다. 사용되는 고성능 코어의 개수가 늘어날수록 전력 소모 및 발열이 크게 증가한다. 한편 CPU 로드가 줄어들면 고성능 코어에서 저전력 코어로 스위칭된다. When the low power core is used and the CPU load increases, the low power core is switched to the high performance core. As the number of high-performance cores used increases, power consumption and heat generation increase significantly. Meanwhile, when the CPU load is reduced, it switches from a high-performance core to a low-power core.

멀티 코어 프로세서에서 보다 효과적인 온도 관리를 수행하기 위해 다양한 스위칭 기법들이 개발되고 있다.Various switching techniques are being developed to perform more effective temperature management in multi-core processors.

본 발명이 이루고자 하는 기술적인 과제는 보다 효과적인 온도 관리를 수행하는 전자 시스템 및 이의 동작 방법을 제공하는 것이다.The technical problem to be achieved by the present invention is to provide an electronic system and a method of operating the same for performing more effective temperature management.

본 발명의 일 실시예에 따르면, 이종멀티코어를 포함하는 전자 시스템의 동작 방법에 있어서, 빅 코어의 온도 및 작업량(workload)를 측정하는 단계, 및 상기 빅 코어의 온도 및 작업량에 따라, 상기 빅 코어 및 상기 빅 코어에 상응하는 적어도 하나의 스몰 코어 간의 코어 스위칭을 수행하는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다.According to an embodiment of the present invention, in a method of operating an electronic system including heterogeneous multi-cores, measuring the temperature and workload of the big core, and according to the temperature and workload of the big core, the big There is provided a method of operating an electronic system comprising performing core switching between a core and at least one small core corresponding to the big core.

상기 전자 시스템은 인-커널 스위칭(In-kernel switching)을 사용할 수 있다.The electronic system may use in-kernel switching.

상기 코어 스위칭을 수행하는 단계는 상기 빅 코어의 온도가 제1 기준 온도 이상이 되면, 상기 빅 코어의 잡 큐(job queue)를 상기 스몰 코어로 이동(migrate)시키는 단계, 및 상기 빅 코어를 클락 게이팅 또는 파워 게이팅하는 단계를 포함할 수 있다.The performing of the core switching includes moving a job queue of the big core to the small core when the temperature of the big core reaches a first reference temperature or more, and clocking the big core. Gating or power gating may be included.

상기 빅 코어의 잡 큐를 상기 스몰 코어로 이동시키는 단계는 상기 빅 코어에 상응하는 노멀 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 스로틀(throttled) DVFS 테이블로 변경하는 단계를 포함하고, 상기 스로틀 DVFS 테이블은 상기 스몰 코어에 상응하는 성능 영역만 이용할 수 있다.The step of moving the job queue of the big core to the small core includes changing a normal DVFS (Dynamic Voltage and Frequency Scaling) table corresponding to the big core to a throttled DVFS table, and the throttle DVFS table May use only the performance area corresponding to the small core.

상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블은 상기 스몰 코어에 상응하는 성능 영역에서 서로 다를 수 있다.The normal DVFS table and the throttle DVFS table may be different from each other in a performance area corresponding to the small core.

상기 전자 시스템은 상기 빅 코어를 복수 개 포함하고, 상기 노멀 DVFS 테이블 및 상기 스로틀 DVFS 테이블 각각은 상기 빅 코어의 활성화 개수에 따라 다를 수 있다.The electronic system includes a plurality of big cores, and each of the normal DVFS table and the throttle DVFS table may be different according to the number of activations of the big cores.

상기 코어 스위칭을 수행하는 단계는 상기 빅 코어의 온도가 제2 기준 온도 이하가 되면, 상기 잡 큐를 상기 빅 코어로 이동시키는 단계를 더 포함할 수 있다.The performing of the core switching may further include moving the job queue to the big core when the temperature of the big core falls below the second reference temperature.

상기 제2 기준 온도는 상기 제1 기준 온도보다 낮을 수 있다.The second reference temperature may be lower than the first reference temperature.

상기 빅 코어의 온도는 상기 빅 코어에 구비되는 온도 센서에 의해 측정될 수 있다.The temperature of the big core may be measured by a temperature sensor provided in the big core.

상기 코어 스위칭을 수행하는 단계는 기설정된 조건에 따라, 상기 빅 코어에 인접한 빅 코어들의 잡 큐를 상기 인접한 빅 코어들에 상응하는 스몰 코어들로 이동시키는 단계를 더 포함할 수 있다.The performing of the core switching may further include moving job queues of big cores adjacent to the big core to small cores corresponding to the adjacent big cores according to a preset condition.

상기 빅 코어에 상응하는 스몰 코어는 동적으로 가변될 수 있다.The small core corresponding to the big core may be dynamically variable.

상기 전자 시스템은 상기 빅 코어를 N(N은 1 이상의 정수)개 포함하고, 상기 스몰 코어를 M(M은 1 이상의 정수)개 포함하며, 상기 N은 M과 다를 수 있다.The electronic system includes N (N is an integer of 1 or more) of the big cores, M (M is an integer of 1 or more) of the small cores, and N may be different from M.

상기 전자 시스템은 시스템-온 칩(System-on Chip; SoC)일 수 있다.The electronic system may be a system-on chip (SoC).

본 발명의 다른 실시예에 따르면, N(N은 1 이상의 정수)개의 고성능 코어들을 포함하는 고성능 클러스터, M(M은 1 이상의 정수)개의 저전력 코어들을 포함하는 저전력 클러스터, 및 상기 각 고성능 코어의 온도에 따라 상기 각 고성능 코어 및 상기 고성능 코어에 상응하는 적어도 하나의 저전력 코어 간에 코어 스위칭을 수행하는 스위쳐를 포함하는 전자 시스템이 제공된다.According to another embodiment of the present invention, a high-performance cluster including N (N is an integer of 1 or more) high-performance cores, a low-power cluster including M (M is an integer of 1 or more) low-power cores, and the temperature of each of the high-performance cores. Accordingly, an electronic system including a switcher for performing core switching between each of the high-performance cores and at least one low-power core corresponding to the high-performance core is provided.

상기 고성능 코어들 각각은 상기 저전력 코어들 중 어느 하나에 동적 또는 정적으로 매핑될 수 있다.Each of the high performance cores may be dynamically or statically mapped to any one of the low power cores.

상기 스위쳐는 적어도 하나의 상기 고성능 코어의 온도가 제1 기준 온도 이상이 되면, 상기 고성능 코어의 잡 큐(job queue)를 상기 고성능 코어에 상응하는 저전력 코어로 이동(migrate)시킬 수 있다.When the temperature of at least one of the high-performance cores reaches a first reference temperature or higher, the switcher may migrate a job queue of the high-performance core to a low-power core corresponding to the high-performance core.

상기 스위쳐는 상기 잡 큐를 상기 저전력 코어로 이동시킨 후, 상기 고성능 코어를 클락 게이팅 또는 파워 게이팅할 수 있다.After moving the job queue to the low power core, the switcher may clock gating or power gating the high performance core.

상기 스위쳐는 상기 고성능 코어의 온도가 제3 기준 온도 이상이 되면, 상기 고성능 코어에 인접한 고성능 코어들의 잡 큐를 각 인접한 고성능 코어들에 상응하는 저전력 코어들로 이동시킬 수 있다.When the temperature of the high-performance core reaches a third reference temperature or higher, the switcher may move job queues of high-performance cores adjacent to the high-performance core to low-power cores corresponding to the high-performance cores adjacent to each other.

상기 스위쳐는 상기 각 고성능 코어의 온도가 제2 기준 온도 이하가 되면, 상기 각 고성능 코어에 상응하는 저전력 코어의 잡 큐를 상기 각 고성능 코어로 이동시킬 수 있다.When the temperature of each of the high-performance cores falls below the second reference temperature, the switcher may move the job queue of the low-power core corresponding to the high-performance core to each of the high-performance cores.

본 발명의 또 다른 실시예에 따르면, 각각이 제1 타입 코어 및 상기 제1 타입 코어와 성능 또는 전력 특성이 다른 제2 타입 코어를 포함하고, 상기 제1 타입 코어 및 상기 제2 타입 코어 중 하나가 선택적으로 동작하는 적어도 하나의 코어 페어(core pair), 및 상기 제1 타입 코어의 온도 및 작업량에 따라 상기 코어 페어에 서로 다른 DVFS 테이블을 적용하는 커널을 포함하는 전자 시스템이 제공된다.According to another embodiment of the present invention, each includes a first type core and a second type core having different performance or power characteristics from the first type core, and one of the first type core and the second type core There is provided an electronic system including at least one core pair selectively operating, and a kernel applying different DVFS tables to the core pair according to the temperature and workload of the first type core.

상기 커널은 상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어의 상기 제2 타입 코어가 동작하도록 상기 코어 페어를 제어할 수 있다.The kernel may control the core pair to operate the second type core of the core pair when the temperature of the first type core is equal to or higher than a first reference temperature.

상기 커널은 상기 제1 타입 코어의 온도가 제1 기준 온도 이상이면 상기 코어 페어에 스로틀 DVFS 테이블을 적용하며, 상기 스로틀 DVFS 테이블은 상기 제2 타입 코어에 상응하는 성능 영역만 이용할 수 있다.The kernel applies a throttle DVFS table to the core pair when the temperature of the first type core is equal to or higher than a first reference temperature, and the throttle DVFS table may use only a performance region corresponding to the second type core.

상기 커널은 상기 제1 타입 코어의 온도가 제2 기준 온도 이하이면 상기 코어 페어의 상기 제1 타입 코어가 동작하도록 상기 코어 페어를 제어할 수 있다.The kernel may control the core pair to operate the first type core of the core pair when the temperature of the first type core is less than or equal to a second reference temperature.

본 발명의 또 다른 실시예에 따르면, 제1 타입 코어 및 상기 제1 타입 코어에 상응하는 적어도 하나의 제2 타입 코어를 포함하고, 상기 제1 타입 코어 및 상기 적어도 하나의 제2 타입 코어를 선택적으로 동작시키는 전자 시스템의 동작 방법에 있어서, 상기 제1 타입 코어의 온도를 측정하는 단계, 상기 제1 타입 코어의 온도가 제1 기준 온도 이상인지 판단하는 단계, 상기 제1 타입 코어의 온도가 상기 제1 기준 온도 이상이면, 상기 제1 타입 코어의 잡 큐를 상기 적어도 하나의 제2 타입 코어로 이동시키는 단계, 상기 제1 타입 코어를 클락 게이팅 또는 파워 게이팅하는 단계, 상기 제1 타입 코어의 온도가 제2 기준 온도 이하인지 판단하는 단계, 및 상기 제1 타입 코어의 온도가 상기 제2 기준 온도 이하이면, 상기 적어도 하나의 제2 타입 코어의 잡 큐를 상기 제1 타입 코어로 이동시키는 단계를 포함하는 전자 시스템의 동작 방법이 제공된다.According to another embodiment of the present invention, a first type core and at least one second type core corresponding to the first type core are included, and the first type core and the at least one second type core are selectively selected. A method of operating an electronic system operating as a method, comprising: measuring a temperature of the first type core, determining whether a temperature of the first type core is equal to or higher than a first reference temperature, wherein the temperature of the first type core is When the temperature is higher than the first reference temperature, moving the job queue of the first type core to the at least one second type core, clock gating or power gating the first type core, the temperature of the first type core Determining whether is less than or equal to a second reference temperature, and if the temperature of the first type core is less than or equal to the second reference temperature, moving the job queue of the at least one second type core to the first type core A method of operating a containing electronic system is provided.

상기 전자 시스템의 동작 방법은 상기 제1 타입 코어의 온도가 제3 기준 온도 이상인지 판단하는 단계, 및 상기 제1 타입 코어의 온도가 상기 제3 기준 온도 이상이면, 상기 제1 타입 코어에 인접한 제1 타입 코어들의 잡 큐를 상기 인접한 제1 타입 코어들에 상응하는 제2 타입 코어들로 이동시키는 단계를 더 포함할 수 있다.In the operating method of the electronic system, determining whether a temperature of the first type core is equal to or higher than a third reference temperature, and if the temperature of the first type core is equal to or higher than the third reference temperature, a second type adjacent to the first type core The step of moving the job queues of the first type cores to the second type cores corresponding to the adjacent first type cores may be further included.

본 발명의 실시예에 따르면 이종 멀티코어(Heterogeneous multi-core) 구조에서 온도상승에 따라 이종 코어 간의 코어 스위칭(core switching)을 수행하므로, AP(Application Processor)의 온도 조건을 만족시킬 수 있고, 물리적으로는 다른 코어를 사용함으로써 보다 효과적인 온도 관리(thermal management)를 수행할 수 있는 효과가 있다.According to an embodiment of the present invention, since core switching is performed between heterogeneous cores according to temperature increase in a heterogeneous multi-core structure, the temperature condition of an application processor (AP) can be satisfied, and With the use of different cores, there is an effect that more effective thermal management can be performed.

도 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 shows a block diagram of an electronic system according to an embodiment of the present invention.
2 is a block diagram specifically showing the CPU of FIG. 2.
FIG. 3 shows the operation of the CPU of FIG. 2 during in-kernel switching.
4 is a block diagram illustrating the switcher of FIG. 2.
5 shows an example of the operation of the CPU of FIG. 2.
6 shows a DVFS policy applied to each core pair.
7A shows a range of available capabilities according to a DVFS policy according to an embodiment of the present invention.
Figure 7b shows a graph of the performance and power of the core pair of Figure 7a.
7C shows a graph of performance and power of a core pair according to another embodiment of the present invention.
8 is a flowchart showing a method of changing a normal DVFS table to a throttle DVFS table.
9 is a flowchart showing a method of changing a throttle DVFS table to a normal DVFS table.
10 is a flowchart illustrating an embodiment of the operation of the CPU of FIG. 2.
11 is a flow chart showing another embodiment of the operation of the CPU of FIG. 2.
12 is a block diagram showing an embodiment of an electronic system including an SoC according to an embodiment of the present invention.

본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.Specific structural or functional descriptions of the embodiments according to the concept of the present invention disclosed in the present specification are exemplified only for the purpose of describing the embodiments according to the concept of the present invention, and the embodiments according to the concept of the present invention are It may be implemented in various forms and is not limited to the embodiments described herein.

본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.Since the embodiments according to the concept of the present invention can apply various changes and have various forms, the embodiments will be illustrated in the drawings and described in detail in the present specification. However, this is not intended to limit the embodiments according to the concept of the present invention to specific disclosed forms, and includes all changes, equivalents, or substitutes included in the spirit and scope of the present invention.

제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.Terms such as first or second may be used to describe various components, but the components should not be limited by the terms. The terms are only for the purpose of distinguishing one component from other components, for example, without departing from the scope of the rights according to the concept of the present invention, the first component may be referred to as the second component, and similarly The second component may also be referred to as a first component.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" or "connected" to another component, it is understood that it may be directly connected or connected to the other component, but other components may exist in the middle. Should be. On the other hand, when a component is referred to as being "directly connected" or "directly connected" to another component, it should be understood that there is no other component in the middle. Other expressions describing the relationship between components, such as "between" and "just between" or "adjacent to" and "directly adjacent to" should be interpreted as well.

본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in this specification are used only to describe specific embodiments, and are not intended to limit the present invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of a set feature, number, step, action, component, part, or combination thereof, but one or more other features or numbers It is to be understood that the possibility of addition or presence of, steps, actions, components, parts, or combinations thereof is not preliminarily excluded.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which the present invention belongs. Terms as defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this specification. Does not.

이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail by describing a preferred embodiment of the present invention with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 전자 시스템의 블록도를 나타낸다.1 shows a block diagram of an electronic system according to an embodiment of the present invention.

도 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)로 구현될 수 있다.Referring to FIG. 1, an electronic system 1 includes a mobile phone, a smart phone, a tablet personal computer (PC), a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, and a digital Video camera (digital video camera), portable multimedia player (PMP), personal navigation device or portable navigation device (PND), handheld game console, or e-book It can be implemented as a handheld device.

전자 시스템(1)은 시스템 온 칩(system on chip(SoC); 10), 외부 메모리 (30), 및 디스플레이 디바이스(20)를 포함한다.The electronic system 1 includes a system on chip (SoC) 10, an external memory 30, and a display device 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)를 더 포함할 수 있다.The SoC 10 includes a central processing unit (CPU) 100, a read only memory (ROM) 110, a random access memory (RAM) 120, a timer 130, a display controller 140, and graphics processing. It may include a graphics processing unit (GPU) 150, a memory controller 160, a clock management unit (CMU) 170, and a bus 180. The SoC 10 may further include other components in addition to the illustrated components. The electronic system 1 may further include a power management IC (PMIC) 40.

도 1의 실시 예에서, PMIC(40)가 SoC(10)의 외부에 구현되나, 다른 실시 예에서 SoC(10)는 PMIC(40)의 기능을 수행할 수 있는 전력 관리 유닛(power management unit(PMU))을 포함할 수 있다. In the embodiment of FIG. 1, the PMIC 40 is implemented outside the SoC 10, but in another embodiment, the SoC 10 is a power management unit capable of performing the function of the PMIC 40. PMU)).

프로세서(processor)라고도 불릴 수 있는 CPU(100)는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(100)는 CMU(170)로부터 출력된 동작 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.The CPU 100, which may also be referred to as a processor, may process or execute programs and/or data stored in the external memory 30. For example, the CPU 100 may process or execute the programs and/or the data in response to an operation clock signal output from the CMU 170.

CPU(100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.The CPU 100 may be implemented as a multi-core processor. The multi-core processor is a computing component having two or more independent substantial processors (referred to as'cores'), each of the processors being program instructions (program instructions). ) Can be read and executed.

ROM(110), RAM(120), 및/또는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(100)의 메모리(미도시)에 로드(load)될 수 있다.Programs and/or data stored in the ROM 110, the RAM 120, and/or the external memory 30 may be loaded into the memory (not shown) of the CPU 100 as needed.

ROM(110)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM 110 may store permanent programs and/or data.

ROM(110)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.The ROM 110 may be implemented as an erasable programmable read-only memory (EPROM) or an electrically erasable programmable read-only memory (EEPROM).

RAM(120)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(110 또는 30)에 저장된 프로그램들 및/또는 데이터는 CPU(100)의 제어에 따라 또는 ROM(110)에 저장된 부팅 코드(booting code)에 따라 RAM(120)에 일시적으로 저장될 수 있다. RAM(120)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.The RAM 120 may temporarily store programs, data, or instructions. For example, programs and/or data stored in the memory 110 or 30 may be temporarily stored in the RAM 120 under the control of the CPU 100 or a booting code stored in the ROM 110. have. The RAM 120 may be implemented as dynamic RAM (DRAM) or static RAM (SRAM).

타이머(130)는 CMU(170)로부터 출력된 동작 클락 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.The timer 130 may output a count value representing a time based on the operation clock signal output from the CMU 170.

GPU(150)는 메모리 컨트롤러(160)에 의해 외부 메모리(30)로부터 리드 (read)된 데이터를 디스플레이 디바이스(20)에 적합한 신호로 변환할 수 있다.The GPU 150 may convert data read from the external memory 30 by the memory controller 160 into a signal suitable for the display device 20.

CMU(170)는 동작 클락 신호를 생성한다. CMU(170)는 위상 동기 루프(phase locked loop(PLL)), 지연 동기 루프(delayed locked loop(DLL)), 또는 크리스탈 오실레이터 등과 같은 클락 신호 생성 장치를 포함할 수 있다.The CMU 170 generates an operation clock signal. The CMU 170 may include a clock signal generation device such as a phase locked loop (PLL), a delayed locked loop (DLL), or a crystal oscillator.

동작 클락 신호는 GPU(150)로 공급될 수 있다. 물론, 동작 클락 신호는 다른 구성 요소(예컨대, CPU(100) 또는 메모리 컨트롤러(160) 등)로 공급될 수도 있다. CMU(170)는 동작 클락 신호의 주파수를 변경할 수 있다.The operation clock signal may be supplied to the GPU 150. Of course, the operation clock signal may be supplied to other components (eg, the CPU 100 or the memory controller 160). The CMU 170 may change the frequency of the operating clock signal.

CPU(100)는 이종멀티코어, 예컨대 제1 타입 코어 및 제2 타입 코어를 포함할 수 있다. 실시예에 따라 CPU(100)는 제1 타입 코어 및 제2 타입 코어 외에도 제3 타입 코어를 더 포함할 수 있다. The CPU 100 may include heterogeneous multi-cores, for example, a first type core and a second type core. According to an embodiment, the CPU 100 may further include a third type core in addition to the first type core and the second type core.

이하에서 제1 타입 코어는 고성능 코어 또는 빅 코어라고 지칭하고, 제2 타입 코어는 저전력 코어, 리틀 코어 또는 스몰 코어라고 지칭하기로 한다.Hereinafter, the first type core will be referred to as a high performance core or a big core, and the second type core will be referred to as a low power core, a little core, or a small core.

CPU(100)는 저전력 코어에 태스크를 할당하고 상기 태스크가 할당된 저전력 코어에서 CPU 로드를 측정하고, 측정된 CPU 로드가 저전력 코어에서 수행될 수 있는 작업 로드를 초과하면, 고성능 코어로 스위칭한다. 또한, CPU(100)는 측정된 CPU 로드에 기초하여 상기 고성능 코어에서 수행 중인 작업 로드가 저전력 코어에서도 수행할 수 있다고 판단되면, 고성능 코어로부터 저전력 코어로 역스위칭한다.The CPU 100 allocates a task to a low-power core, measures a CPU load in the low-power core to which the task is assigned, and switches to a high-performance core when the measured CPU load exceeds a workload that can be performed in the low-power core. In addition, based on the measured CPU load, when it is determined that the work load being executed by the high-performance core can be performed by the low-power core, the CPU 100 reverses the switch from the high-performance core to the low-power core.

메모리 컨트롤러(160)는 외부 메모리(190)와 인터페이스한다. 메모리 컨트롤러(160)는 외부 메모리(190)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리 (190) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(160)는 호스트의 요청에 따라 외부 메모리(190)에 데이터를 쓰거나 외부 메모리(190)로부터 데이터를 읽을 수 있다.여기서, 호스트는 CPU(100), GPU(150), 또는 디스플레이 컨트롤러(140)와 같은 마스터(master) 장치일 수 있다. The memory controller 160 interfaces with the external memory 190. The memory controller 160 overall controls the operation of the external memory 190 and controls data exchange between the host and the external memory 190. For example, the memory controller 160 may write data to the external memory 190 or read data from the external memory 190 at the request of the host. Here, the host is the CPU 100, the GPU 150, or the display It may be a master device such as the controller 140.

외부 메모리(30)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(30)는 예컨대 DRAM 일수 있으나 이에 한정되는 것은 아니다.The external memory 30 is a storage medium for storing data, and may store an operating system (OS), various programs, and/or various data. The external memory 30 may be, for example, a DRAM, but is not limited thereto.

예컨대, 외부 메모리(30)는 불휘발성 메모리 장치(예컨대, 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시 예에서 외부 메모리(30)는 SoC(10)의 내부에 구비되는 내장 메모리일 수 있다. 또한, 외부 메모리(30)는 플래시 메모리, eMMC(embedded multimedia card), 또는 UFS(universal flash storage)일 수 있다.For example, the external memory 30 may be a nonvolatile memory device (eg, a flash memory, a phase change RAM (PRAM), a magnetic RAM (MRAM), a resistive RAM (RRAM)), or a FeRAM device). In another embodiment of the present invention, the external memory 30 may be an internal memory provided in the SoC 10. Also, the external memory 30 may be a flash memory, an embedded multimedia card (eMMC), or a universal flash storage (UFS).

각 구성 요소(100, 110, 120, 130, 140, 150, 160 및 170)는 버스(180)를 통하여 서로 통신할 수 있다.Each of the components 100, 110, 120, 130, 140, 150, 160, and 170 may communicate with each other through the bus 180.

디스플레이 디바이스(20)는 디스플레이 컨트롤러(140)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스(20)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다.The display device 20 may display image signals output from the display controller 140. For example, the display device 20 may be implemented as a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, an active-matrix OLED (AMOLED) display, or a flexible display. .

디스플레이 컨트롤러(140)는 디스플레이 디바이스(25)의 동작을 제어한다.The display controller 140 controls the operation of the display device 25.

도 2는 도 2의 CPU에 대해 구체적으로 나타낸 블록도이다.2 is a block diagram specifically showing the CPU of FIG. 2.

도 2를 참조하면, CPU(100), 즉, 프로세서는 고성능 클러스터(Big Cluster, 220), 저전력 클러스터(Little Cluster,230), 커널(301), 및 CCI(Cache Coherent Interconnect, 210)를 포함한다. 2, the CPU 100, that is, the processor includes a high-performance cluster (Big Cluster, 220), a low-power cluster (Little Cluster, 230), a kernel 301, and CCI (Cache Coherent Interconnect, 210). .

CPU(100)에서 실행되는 적어도 하나의 애플리케이션(application, 미도시)은 코어(Core)가 태스크를 수행하도록 한다. 커널(301)은 각 애플리케이션으로부터 태스크를 수신하여 각 클러스터, 즉, 각 코어에 대해 자원할당을 수행한다. At least one application (not shown) executed in the CPU 100 causes a core to perform a task. Kernel 301 receives a task from each application and performs resource allocation for each cluster, that is, each core.

고성능 클러스터(220)는 복수(예를 들어 N개)의 고성능 코어들(221) 및 제1 캐시(225)를 포함한다. 저전력 클러스터(230)는 복수(예를 들어 M개)의 저전력 코어들(231) 및 제2 캐시(235)를 포함한다. 고성능 코어(221)는 높은 전력을 소모하며 높은 동작 주파수로 동작한다. 저전력 코어(231)는 낮은 전력을 소모하며 낮은 동작 주파수로 동작한다. 고성능 코어의 개수(N)와 저전력 코어의 개수(M)는 다를 수도 있고, 같을 수도 있다.The high performance cluster 220 includes a plurality (eg, N) of high performance cores 221 and a first cache 225. The low power cluster 230 includes a plurality (eg, M) of low power cores 231 and a second cache 235. The high-performance core 221 consumes high power and operates at a high operating frequency. The low power core 231 consumes low power and operates at a low operating frequency. The number of high-performance cores (N) and the number of low-power cores (M) may be different or the same.

프로세서(100)는 고성능 코어(221)와 저전력 코어(231)를 포함하며, 각 어플리케이션들에 의해 제공된 CPU 로드에 따라 적절한 코어를 동작시킨다. 프로세서(100)는 CPU 로드가 작으면 저전력 코어(231)를 동작시키고, CPU 로드가 크면 고성능 코어(221)를 동작시킨다.The processor 100 includes a high-performance core 221 and a low-power core 231, and operates an appropriate core according to the CPU load provided by each application. The processor 100 operates the low power core 231 when the CPU load is small, and operates the high performance core 221 when the CPU load is large.

또한 프로세서(100)는 동작 중의 코어의 개수에 대한 강제 조정, 사용자 설정(User's Configuration), 시스템 설정 등의 외부 요청에 따라 각 코어들의 동작을 제어하여 SoC(10)를 안정적으로 동작시킨다.In addition, the processor 100 stably operates the SoC 10 by controlling the operation of each core according to external requests such as forcibly adjusting the number of cores during operation, user's configuration, and system setting.

커널(301)은 저전력 코어(231)에서 측정된 CPU 로드가 임계값을 초과할 때 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 커널(301)은 고성능 코어(221)에서 측정된 CPU 로드가 제2 임계값보다 작아지면, 태스크(task)를 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다. 커널(301)의 스위칭 동작은 페어(pair) 관계에 있지 않은 코어 간에도 수행될 수 있다.The kernel 301 switches the task from the low power core 231 to the high performance core 221 when the CPU load measured by the low power core 231 exceeds a threshold value. When the CPU load measured by the high performance core 221 is less than the second threshold, the kernel 301 switches the task from the high performance core 221 to the low power core 231. The switching operation of the kernel 301 may be performed even between cores that are not in a pair relationship.

커널(301)에 의한 이종 코어(heterogeneous core) 간의 코어 스위칭을 실행하기 위해, 제2 캐시(235)는 제1 캐시(225)로 또는 제1 캐시(225)는 제2 캐시(235)로 CCI(210)를 통해 데이터를 동기화 시킨다. CCI(210)를 통한 캐시 간의 데이터 동기화로 인해 코어 스위칭시에 스위칭된 코어는 즉시 주어진 태스크를 실행할 수 있다. In order to perform core switching between heterogeneous cores by the kernel 301, the second cache 235 is CCI to the first cache 225 or the first cache 225 to the second cache 235 Synchronize data through (210). Due to the synchronization of data between caches through the CCI 210, the switched core can immediately execute a given task during core switching.

제1 캐시(225) 및 제2 캐시(235)는 각 코어(221,231)에 포함된 캐시 메모리이다. The first cache 225 and the second cache 235 are cache memories included in each of the cores 221 and 231.

커널(301)은 서로 다른 성능의 코어를 스위칭하는 스위쳐(300)를 포함할 수 있다. The kernel 301 may include a switcher 300 for switching cores of different performances.

본 명세서에서 커널(301), 스위쳐(300)라 함은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수 있고, 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록매체, 예컨대 프로세서를 의미할 수도 있다. In this specification, the kernel 301 and the switcher 300 may mean hardware capable of performing functions and operations according to respective names described in this specification, and a computer program capable of performing specific functions and operations. It may mean a code, or an electronic recording medium, such as a processor, on which a computer program code capable of performing a specific function and operation is mounted.

즉, 각 구성요소(301,300)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.That is, each component 301 and 300 may mean a functional and/or structural combination of hardware for performing the technical idea of the present invention and/or software for driving the hardware.

스위쳐(300)는 저전력 코어(231)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)를 초과하는 경우 상기 CPU 로드에 따른 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 스위쳐(300)는 고성능 코어(221)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)보다 작으면, 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다.The switcher 300 transfers a task according to the CPU load from the low-power core 231 to a high-performance core when the CPU load measured by the low-power core 231 exceeds the work capacity of the low-power 231 core. 221). The switcher 300 switches from the high-performance core 221 to the low-power core 231 when the CPU load measured by the high-performance core 221 is smaller than the working capacity of the low-power 231 core.

도 3은 도 2의 CPU의 인-커널 스위칭(In-kernel switching) 시의 동작을 나타낸다.FIG. 3 shows the operation of the CPU of FIG. 2 during in-kernel switching.

*도 2 및 도 3을 참조하면, 인-커널 스위칭을 이용하는 경우 각 빅 코어(221-1~221-4)는 동적 또는 정적으로 상응하는 하나의 스몰 코어(231-1~231-4)에 매핑된다. 동적으로 매핑되는 경우, 빅 코어(221-1~221-4)에 상응하는 스몰 코어(231-1~231-4)는 동적으로 가변될 수 있다.* Referring to FIGS. 2 and 3, when in-kernel switching is used, each of the big cores 221-1 to 221-4 dynamically or statically corresponds to one small core 231-1 to 231-4. Is mapped. When dynamically mapped, the small cores 231-1 to 231-4 corresponding to the big cores 221-1 to 221-4 may be dynamically variable.

매핑되는 하나의 빅 코어 및 하나의 스몰 코어는 코어 페어(core pair)를 구성한다. 예컨대 제K(K는 1 이상의 정수) 코어 페어는 제K 빅 코어(221-K) 및 제K 리틀 코어(231-K)를 포함할 수 있다.One big core and one small core to be mapped constitute a core pair. For example, the Kth (K is an integer greater than or equal to 1) core pair may include the Kth big core 221-K and the Kth little core 231-K.

인-커널 스위칭 시, 각 코어 페어에서는 하나의 코어만이 선택적으로 동작하여 활성화될 수 있다. 예컨대 각 코어 페어에서 스몰 코어(231-1~231-4)만이 활성화될 수 있다.During in-kernel switching, only one core can be activated by selectively operating in each core pair. For example, only the small cores 231-1 to 231-4 may be activated in each core pair.

커널(301)은 빅 코어(221-1~221-4)의 온도에 따라 각 코어 페어에 서로 다른 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 적용할 수 있다.The kernel 301 may apply a different Dynamic Voltage and Frequency Scaling (DVFS) table to each core pair according to the temperature of the big cores 221-1 to 221-4.

실시예에 따라, 스위쳐(300)는 각 코어 페어의 DVFS 동작점(operating point)에서 빅 코어와 리틀 코어 간의 코어 스위칭을 수행할 수 있다. According to an embodiment, the switcher 300 may perform core switching between a big core and a little core at a DVFS operating point of each core pair.

예컨대 스위쳐(300)는 제1 코어 페어에서 제1 리틀 코어(231-1)의 잡 큐(job queue)를 제1 빅 코어(221-1)로 이동(migration)시킨 후, 제1 리틀 코어(231-1)를 클락 게이팅 또는 파워 게이팅시킬 수 있다.For example, the switcher 300 migrates the job queue of the first little core 231-1 from the first core pair to the first big core 221-1, and then moves the first little core ( 231-1) can be clock-gated or power-gated.

도 4는 도 2의 스위쳐를 설명하기 위한 블록도이다.4 is a block diagram illustrating the switcher of FIG. 2.

도 4를 참조하면, 스위쳐(Switcher, 300)는 CPU의 로드에 따라 고성능 코어(221-1 내지 221-N) 또는 저전력 코어(231-1 내지 231-M)를 동작시킨다. Referring to FIG. 4, the switcher 300 operates the high performance cores 221-1 to 221-N or the low power cores 231-1 to 231-M according to the load of the CPU.

예를 들어, 스위쳐(300)는 저전력 코어(231-3)에서 측정된 CPU 로드가 저전력(231-1) 코어의 작업용량(capability)를 초과하는 경우 저전력 코어(231-3)로부터 고성능 코어(221-N)로 스위칭한다. 스위쳐(300)은 고성능 코어(221-1)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)보다 작으면, 태스크(task)를 고성능 코어(221-1)로부터 저전력 코어(231-2)로 스위칭한다. For example, when the CPU load measured by the low-power core 231-3 exceeds the working capacity of the low-power core 231-1, the switcher 300 operates from the low-power core 231-3 to the high-performance core ( 221-N). The switcher 300 transfers a task from the high-performance core 221-1 to the low-power core 231 when the CPU load measured by the high-performance core 221-1 is less than the capacity of the low-power 231 core. Switch to -2).

각 고성능 코어(예컨대, 221-1)는 각 고성능 코어(221-1)에 상응하는 하나의 저전력 코어(231-2)와 페어(pair) 관계에 있도록 유지될 수 있다.Each high-performance core (eg, 221-1) may be maintained to be in a pair relationship with one low-power core 231-2 corresponding to each high-performance core 221-1.

다른 실시예에 따라, 각 고성능 코어(예컨대, 221-1)는 사용 중이지 않을 때에는 저전력 코어(231-2)와 페어를 이루지 않을 수 있다. 각 고성능 코어(221-1)는 사용 중일 때에는 상응하는 저전력 코어(231-2)와 페어를 이룰 수 있다. 이때 저전력 코어(231-2)는 고성능 코어(221-1)와 스위칭이 가능하도록 대기상태로 있을 수 있다.According to another embodiment, each high-performance core (eg, 221-1) may not form a pair with the low-power core 231-2 when not in use. When each high-performance core 221-1 is in use, it may form a pair with a corresponding low-power core 231-2. At this time, the low power core 231-2 may be in a standby state to enable switching with the high-performance core 221-1.

도 5는 도 2의 CPU의 동작 일례를 나타낸다.5 shows an example of the operation of the CPU of FIG. 2.

도 2 및 도 5를 참조하면, 빅 코어들(221-1~221-4) 각각의 온도는 기설정된 주기마다 측정될 수 있다. 실시예에 따라 빅 코어들(221-1~221-4) 각각은 온도 센서를 포함하고, 상기 온도 센서가 온도를 측정할 수 있다. 다른 실시예에 따라, 빅 코어 각각에 온도 센서가 내장되지 않고, 빅 코어에 인접한 다른 모듈에서 온도를 측정할 수 있다. 또 다른 실시예에 따라 온도 센서는 온도를 주기적으로 측정하지 않고, 특정 조건이 되면 인터럽트를 발생시킬 수 있다.2 and 5, the temperature of each of the big cores 221-1 to 221-4 may be measured at each preset period. According to an embodiment, each of the big cores 221-1 to 221-4 includes a temperature sensor, and the temperature sensor may measure a temperature. According to another embodiment, a temperature sensor is not built into each of the big cores, and the temperature may be measured in another module adjacent to the big core. According to another embodiment, the temperature sensor may not periodically measure the temperature, and may generate an interrupt when a specific condition is met.

빅 코어의 온도에 따라, 빅 코어 및 상기 빅 코어에 상응하는 스몰 코어 간의 코어 스위칭이 수행될 수 있다.Depending on the temperature of the big core, core switching may be performed between the big core and the small core corresponding to the big core.

예컨대 온도 센서는 기설정된 제1 기준온도 이상이 되면 인터럽트를 발생시킬 수 있다. 제1 빅 코어(221-1)의 온도가 제1 기준 온도 이상이 되는 경우, 스위쳐(300)는 제1 빅 코어(221-1)의 잡 큐(job queue)를 제1 스몰 코어(231-1)로 이동(migrate)시키고, 제1 빅 코어(221-1)를 클락 게이팅 또는 파워 게이팅시킬 수 있다.For example, the temperature sensor may generate an interrupt when the temperature exceeds a preset first reference temperature. When the temperature of the first big core 221-1 is equal to or higher than the first reference temperature, the switcher 300 sets the job queue of the first big core 221-1 to the first small core 231-1. 1), and clock gating or power gating of the first big core 221-1 may be performed.

헤테로지니어스(heterogeneous) 구조에서 스몰 코어는 온도적으로 안전(thermally safe)하다. 따라서, 빅 코어에서 스로틀(throttling)이 발생할 경우 스몰 코어만을 사용함으로써 빅 코어의 열에 의한 손상(thermal attack)을 방지하여 전자 시스템의 안정성을 증가시킬 수 있다.In a heterogeneous structure, the small core is thermally safe. Therefore, when throttling occurs in the big core, only the small core is used to prevent thermal attack of the big core, thereby increasing the stability of the electronic system.

스위쳐(300)는 기설정된 조건에 따라, 제1 빅 코어(221-1)에 인접한 빅 코어들(예컨대 221-2, 221-3)의 잡 큐를 상기 인접한 빅 코어들(221-2, 221-3)에 상응하는 스몰 코어들(231-2, 231-3)로 각각 이동시킬 수 있다.The switcher 300 stores the job queues of the big cores (for example, 221-2 and 221-3) adjacent to the first big core 221-1, according to a preset condition, to the adjacent big cores 221-2 and 221. Each of the small cores 231-2 and 231-3 corresponding to -3) can be moved.

예컨대 스위쳐(300)는 제1 빅 코어(221-1)의 온도가 제3 기준 온도 이상이 되는 경우 인접하는 빅 코어들(221-2, 221-3)의 잡 큐를 상응하는 스몰 코어들(231-2, 231-3)로 각각 이동시킬 수 있다. 스위쳐(300)는 인접하는 빅 코어들(221-2, 221-3)을 클락 게이팅 또는 파워 게이팅시킬 수 있다. 이때 제3 기준 온도는 제1 기준 온도보다 높은 값일 수 있다.For example, when the temperature of the first big core 221-1 is equal to or higher than the third reference temperature, the switcher 300 may match the job queues of the adjacent big cores 221-2 and 221-3 to the corresponding small cores ( 231-2, 231-3) can be moved respectively. The switcher 300 may clock or power gate adjacent big cores 221-2 and 221-3. In this case, the third reference temperature may be a value higher than the first reference temperature.

따라서 과열된 빅 코어의 온도를 보다 빨리 냉각시킬 수 있으므로 빅 코어의 열에 의한 손상(thermal attack)을 보다 효과적으로 방지할 수 있다.Therefore, since the temperature of the overheated big core can be cooled more quickly, thermal attack of the big core can be more effectively prevented.

스위쳐(300)는 제1 빅 코어(221-1)의 온도가 제2 기준 온도 이하가 되면, 잡 큐를 제1 스몰 코어(231-1)에서 제1 빅 코어(221-1)로 이동시킬 수 있다. When the temperature of the first big core 221-1 falls below the second reference temperature, the switcher 300 moves the job queue from the first small core 231-1 to the first big core 221-1. I can.

잦은 코어 스위칭에 의한 오버헤드를 막기 위하여, 제2 기준 온도는 제1 기준 온도보다 낮은 값으로 설정될 수 있다.In order to prevent overhead due to frequent core switching, the second reference temperature may be set to a value lower than the first reference temperature.

도 6은 각 코어 페어에 적용되는 DVFS 정책을 나타내고, 도 7a는 본 발명의 일 실시예에 따른 DVFS 정책에 따라 이용 가능한 성능의 범위를 나타낸다.6 shows a DVFS policy applied to each core pair, and FIG. 7A shows a range of available performance according to a DVFS policy according to an embodiment of the present invention.

도 2, 도 6 및 도 7a을 참조하면, 이종 코어 시스템에서는 각 코어 페어마다 하나의 잡 큐(또는 프로세스, job queue)를 가진다. 2, 6, and 7A, in a heterogeneous core system, each core pair has one job queue (or process, job queue).

커널(301)은 각 코어 페어를 제어할 수 있다. 각 코어 페어의 빅 코어(221-1~221-N)이 과열되지 않는 경우, 커널(301)은 각 코어 페어의 잡 큐에 대해 노멀(normal) DVFS 테이블을 사용할 수 있다.The kernel 301 can control each core pair. When the big cores 221-1 to 221-N of each core pair are not overheated, the kernel 301 may use a normal DVFS table for the job queue of each core pair.

노멀(normal) DVFS 테이블을 사용하는 경우, 각 코어 페어는 프로세스에 필요한 작업량(workload)에 따라 이에 맞는 성능(performance)를 발휘할 수 있는 코어(core)를 이용하고, 상기 코어에 동적 또는 정적으로 매핑(mapping)된 다른 코어는 파워 게이팅(power gating)할 수 있다.In the case of using a normal DVFS table, each core pair uses a core capable of exhibiting performance according to the workload required for the process, and is dynamically or statically mapped to the core. The other cores that are mapped can be power gating.

예컨대, 제1 조합 내지 제(X+Y) 조합(E1~E(X+Y))은 각각 주파수 및/또는 전압을 나타내며, 제1 조합(E1)은 가장 낮은 주파수 및/또는 전압을 나타내고, 제(X+Y) 조합(E(X+Y))은 가장 높은 주파수 및/또는 전압을 나타낼 수 있다.For example, the first combination to the (X+Y) combination (E1 to E(X+Y)) each represents a frequency and/or voltage, and the first combination (E1) represents the lowest frequency and/or voltage, The (X+Y)th combination (E(X+Y)) may represent the highest frequency and/or voltage.

노멀 DVFS 테이블 사용시, 각 코어 페어는 프로세스의 작업량이 가장 낮은 경우 스몰 코어를 제1 조합(E1)에 따라 동작시킬 수 있고, 프로세스의 작업량(workload)이 가장 높은 경우 빅 코어를 제(X+Y) 조합(E(X+Y))에 따라 동작시킬 수 있다.When using the normal DVFS table, each core pair can operate the small core according to the first combination (E1) when the workload of the process is the lowest, and subtract the big core (X+Y) when the workload of the process is the highest. ) Can be operated according to the combination (E(X+Y)).

빅 코어(221-1~221-N)를 이용할 때, 하나의 빅 코어(예컨대 제1 빅 코어, 221-1)가 제1 기준 온도 이상이 되면, 과열된 제1 빅 코어(221-1)의 잡 큐를 제1 스몰 코어(231-1)로 이동(migrate)시켜야 한다. When using the big cores 221-1 to 221-N, when one big core (eg, the first big core, 221-1) reaches a first reference temperature or higher, the overheated first big core 221-1 The job queue of must be migrated to the first small core 231-1.

커널(301)은 제1 코어 페어에 노멀 DVFS 테이블 대신 스로틀(throttled) DVFS 테이블을 적용할 수 있다. The kernel 301 may apply a throttled DVFS table to the first core pair instead of the normal DVFS table.

실시예에 따라, 스로틀 DVFS 테이블은 제1 스몰 코어(231-1)에 상응하는 성능 영역만 이용할 수 있다. 예컨대 스로틀 DVFS 테이블은 제1 조합 내지 제X 조합(E1~EX)만을 이용할 수 있다.According to an embodiment, the throttle DVFS table may use only a performance area corresponding to the first small core 231-1. For example, the throttle DVFS table may use only the first to Xth combinations (E1 to EX).

따라서, 커널(301)의 제어에 따라 제1 코어 페어에서 제1 빅 코어(221-1)은 파워 게이팅 또는 클락 게이팅되고, 제1 스몰 코어(231-1)가 동작할 수 있다.Accordingly, under the control of the kernel 301, the first big core 221-1 may be power-gated or clock-gated in the first core pair, and the first small core 231-1 may operate.

기준 성능(P) 이상의 성능이 요구되는 프로세스를 실행시킬 때 스로틀 DVFS 테이블이 적용되는 경우, 제1 스몰 코어(231-1)은 제X 조합(EX)을 이용할 수 있다. 그러나 본 발명의 실시예가 이에 한정되는 것은 아니다.When the throttle DVFS table is applied when executing a process that requires more than the reference performance P, the first small core 231-1 may use the Xth combination EX. However, embodiments of the present invention are not limited thereto.

도 7b는 도 7a의 코어 페어의 성능 및 전력 그래프를 나타낸다.Figure 7b shows a graph of the performance and power of the core pair of Figure 7a.

도 7a 및 도 7b를 참조하면, 제(X+Y) 조합(E(X+Y))을 실행하던 제1 빅 코어(221-1)에서 열적 스로틀이 발생하여, 제(X+1) 조합(E(X+1))을 실행하도록 변경하는 경우, 제1 코어 페어는 제1 빅 코어(221-1)의 높은 온도로 인해 많은 전력을 소모한다. 7A and 7B, thermal throttle occurs in the first big core 221-1 that was executing the (X+Y)th combination (E(X+Y)), and the (X+1)th combination When changing to execute (E(X+1)), the first core pair consumes a lot of power due to the high temperature of the first big core 221-1.

한편, 제1 코어 페어가 높은 성능을 요구하는 프로세스를 실행하고 있다고 하더라도, 제1 빅 코어(221-1)가 과열되어 제(X+1) 조합(E(X+1))으로 변경된 경우, 제1 코어 페어는 제1 스몰 코어(231-1)의 제X 조합(EX)과 비슷한 성능만을 낼 수 있다.On the other hand, even if the first core pair is executing a process that requires high performance, when the first big core 221-1 is overheated and changes to the (X+1)th combination (E(X+1)), The first core pair may exhibit only performance similar to the X-th combination EX of the first small core 231-1.

따라서, 제1 빅 코어(221-1)에서 제1 스몰 코어(231-1)로 스위칭하여 제X 조합(EX)을 실행하도록 변경할 수 있다. 이는 기존의 제(X+1) 조합(E(X+1))을 실행하도록 변경하는 것과 비교할 때, 거의 같은 성능을 내면서도 보다 적은 전력을 소모하여 보다 안정적인 동작이 가능하도록 하는 효과가 있다. Accordingly, it may be changed to execute the Xth combination EX by switching from the first big core 221-1 to the first small core 231-1. This has the effect of enabling a more stable operation by consuming less power while producing almost the same performance as compared to the change to execute the existing (X+1) combination (E(X+1)).

도 7c는 본 발명의 다른 실시예에 따른 코어 페어의 성능 및 전력 그래프를 나타낸다.7C shows a graph of performance and power of a core pair according to another embodiment of the present invention.

*도 7c를 참조하면, 실시예에 따라 빅 코어와 스몰 코어가 성능이 겹치는 구간을 갖도록 DVFS 테이블이 설정될 수도 있다. 빅 코어와 스몰 코어의 성능-전력 특성을 비교하면, 빅 코어 대신 스몰 코어를 사용하는 경우 동일한 성능에서는 전력 절감 효과가 있고, 동일한 전력 소모 시에는 성능 개선 효과가 있다. 따라서 빅 코어를 이에 상응하는 스몰 코어로 스위칭함으로써 빅 코어의 열에 의한 손상을 방지하면서 성능 및 전력을 효율적으로 관리할 수 있는 효과가 있다.* Referring to FIG. 7C, according to an embodiment, a DVFS table may be configured such that a big core and a small core have a section in which performance overlaps. Comparing the performance-power characteristics of the big core and the small core, when a small core is used instead of a big core, there is a power saving effect at the same performance, and a performance improvement effect at the same power consumption. Therefore, by switching the big core to the corresponding small core, it is possible to efficiently manage performance and power while preventing damage to the big core by heat.

다시 도 2, 도 6 및 도 7a을 참조하면, 커널(301)은 제1 빅 코어(221-1)의 온도가 제2 기준 온도 이하이면 제1 코어 페어에 스로틀 DVFS 테이블 대신 노멀 DVFS 테이블을 적용하여, 제1 코어 페어의 제1 빅 코어(221-1)를 동작시킬 수 있다.Referring back to FIGS. 2, 6 and 7A, the kernel 301 applies the normal DVFS table to the first core pair instead of the throttle DVFS table when the temperature of the first big core 221-1 is less than the second reference temperature. Thus, the first big core 221-1 of the first core pair can be operated.

도 7a에서 노멀 DVFS 테이블 및 스로틀 DVFS 테이블은 스몰 코어에 상응하는 성능 영역에서 동일한 조합 값(E1~EX)을 갖도록 도시하였다. 그러나 실시예에 따라, 노멀 DVFS 테이블 및 스로틀 DVFS 테이블은 스몰 코어에 상응하는 성능 영역에서 서로 다르게 설정될 수 있다.In FIG. 7A, the normal DVFS table and the throttle DVFS table are illustrated to have the same combination values (E1 to EX) in the performance region corresponding to the small core. However, according to embodiments, the normal DVFS table and the throttle DVFS table may be set differently in a performance area corresponding to the small core.

예컨대 스로틀 DVFS 테이블에서 기준 성능(P) 이하의 조합의 수를 X와 다른 Z(Z는 1 이상의 정수)개로 설정할 수 있다. 실시예에 따라, Z는 X보다 큰 값일 수 있다. For example, in the throttle DVFS table, the number of combinations less than or equal to the reference performance (P) may be set to Z different from X (Z is an integer of 1 or more). Depending on the embodiment, Z may be greater than X.

따라서 빅 코어의 과열에 따라 스몰 코어에 프로세스가 집중될 때, 스몰 코어를 보다 효율적으로 제어할 수 있다.Therefore, when the process is concentrated on the small core due to overheating of the big core, the small core can be controlled more efficiently.

노멀 DVFS 테이블 및 스로틀 DVFS 테이블 각각은 빅 코어의 활성화 개수에 따라 달리 설정될 수 있다. 실시예에 따라, 노멀 DVFS 테이블 및 스로틀 DVFS 테이블 각각은 활성화된 빅 코어의 위치에 따라 달리 설정될 수 있다.Each of the normal DVFS table and the throttle DVFS table may be set differently according to the number of activations of the big core. According to an embodiment, each of the normal DVFS table and the throttle DVFS table may be set differently according to the position of the activated big core.

예컨대 빅 코어가 보다 많이 활성화되거나, 인접한 빅 코어들이 활성화되는 경우, 열에 의한 위험이 더 클 수 있다. 따라서 해당하는 코어 페어의 노멀 DVFS 테이블 또는 스로틀 DVFS 테이블은 보다 낮은 동작 주파수 및 동작 전압을 갖도록 설정될 수 있다.For example, if the big core is activated more or adjacent big cores are activated, the risk due to heat may be greater. Accordingly, the normal DVFS table or the throttle DVFS table of the corresponding core pair may be set to have a lower operating frequency and an operating voltage.

도 8은 노멀 DVFS 테이블을 스로틀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.8 is a flowchart showing a method of changing a normal DVFS table to a throttle DVFS table.

도 8을 참조하면, 빅 코어의 온도를 측정한다(S11).8, the temperature of the big core is measured (S11).

빅 코어의 온도가 제1 기준 온도(또는 상한 임계값이라고 칭함)보다 높은지 판단한다(S13).It is determined whether the temperature of the big core is higher than the first reference temperature (or the upper limit threshold) (S13).

빅 코어의 온도가 상한 임계값보다 높으면, 해당하는 코어 페어의 DVFS 테이블을 스로틀 DVFS 테이블로 변경한다(S15).When the temperature of the big core is higher than the upper limit threshold, the DVFS table of the corresponding core pair is changed to the throttle DVFS table (S15).

도 9는 스로틀 DVFS 테이블을 노멀 DVFS 테이블로 변경하는 방법을 나타낸 순서도이다.9 is a flowchart showing a method of changing a throttle DVFS table to a normal DVFS table.

도 9를 참조하면, 빅 코어의 온도를 측정한다(S21).9, the temperature of the big core is measured (S21).

빅 코어의 온도가 제2 기준 온도(또는 하한 임계값이라고 칭함)보다 낮은지 판단한다(S23).It is determined whether the temperature of the big core is lower than the second reference temperature (or the lower limit threshold) (S23).

빅 코어의 온도가 하한 임계값보다 낮으면, 해당하는 코어 페어의 DVFS 테이블을 노멀 DVFS 테이블로 변경한다(S25).If the temperature of the big core is lower than the lower limit threshold, the DVFS table of the corresponding core pair is changed to the normal DVFS table (S25).

도 10은 도 2의 CPU의 동작의 일 실시예를 나타내는 순서도이다.10 is a flowchart illustrating an embodiment of the operation of the CPU of FIG. 2.

도 2, 도 3 및 도 10을 참조하면, 각 빅 코어(221-1~221-4)의 온도 및 작업량이 측정된다(S31). 온도는 각 빅 코어(221-1~221-4)에 구비된 온도 센서에 의해 측정될 수 있다. 2, 3, and 10, the temperature and work amount of each of the big cores (221-1 to 221-4) is measured (S31). The temperature may be measured by a temperature sensor provided in each of the big cores 221-1 to 221-4.

스위쳐(300)는 빅 코어(221-1~221-4)의 온도 및 작업량에 따라 빅 코어(221-1~221-4) 및 스몰 코어(231-1~231-4) 간의 코어 스위칭을 수행한다(S33).The switcher 300 performs core switching between the big cores 221-1 to 221-4 and the small cores 231-1 to 231-4 according to the temperature and workload of the big cores 221-1 to 221-4. Do (S33).

도 11은 도 2의 CPU의 동작의 다른 실시예를 나타내는 순서도이다.11 is a flow chart showing another embodiment of the operation of the CPU of FIG. 2.

도 2, 도 3 및 도 11을 참조하면, 커널(301)은 제1 타입 코어(예컨대 221-1)의 온도가 제1 기준 온도 이상인지 판단한다(S41).2, 3, and 11, the kernel 301 determines whether the temperature of the first type core (for example, 221-1) is equal to or higher than the first reference temperature (S41).

커널(301)은 제1 타입 코어(221-1)의 온도가 제1 기준 온도 이상이면, 제1 타입 코어(221-1)의 잡 큐를 제2 타입 코어(231-1)로 이동시킨다(S43).When the temperature of the first type core 221-1 is equal to or higher than the first reference temperature, the kernel 301 moves the job queue of the first type core 221-1 to the second type core 231-1 ( S43).

이후 커널(301)은 제1 타입 코어(221-1)를 클락 게이팅 또는 파워 게이팅한다(S45).Thereafter, the kernel 301 clock-gates or powers-gates the first type core 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)로 이동시킬 수 있다.Depending on the embodiment, the kernel 301 may determine whether the temperature of the first type core 221-1 is equal to or higher than the third reference temperature. When the temperature of the first type core 221-1 is equal to or higher than the third reference temperature, the kernel 301 is The job queue may be moved to the second type cores 231-2 and 231-3 corresponding to the adjacent first type cores 221-2 and 221-3.

커널(301)은 제1 타입 코어(221-1)의 온도가 제2 기준 온도 이하인지 판단한다(S47).The kernel 301 determines whether the temperature of the first type core 221-1 is less than or equal to the second reference temperature (S47).

커널(301)은 제1 타입 코어(221-1)의 온도가 제2 기준 온도 이하이면, 제2 타입 코어(231-1)의 잡 큐를 제1 타입 코어(221-1)로 이동시킨다(S49).If the temperature of the first type core 221-1 is less than or equal to the second reference temperature, the kernel 301 moves the job queue of the second type core 231-1 to the first type core 221-1 ( S49).

도 12는 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 실시예를 나타낸 블록도이다.12 is a block diagram showing an embodiment of an electronic system including an SoC according to an embodiment of the present invention.

도 12를 참조하면, 전자 시스템은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다.Referring to FIG. 12, the electronic system may be implemented as a personal computer (PC), a data server, or a portable electronic device.

상기 휴대용 전자 장치는 랩탑(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)으로 구현될 수 있다.The portable electronic device includes a laptop computer, a mobile phone, a smart phone, a tablet PC, a personal digital assistant (PDA), an enterprise digital assistant (EDA), a digital still camera, It may be implemented as a digital video camera, a portable multimedia player (PMP), a personal navigation device or a portable navigation device (PND), a handheld game console, or an e-book. .

전자 시스템은 SoC(10), 파워 소스(910), 스토리지(920), 메모리 (930), 입출력 포트(940), 확장 카드(950), 네트워크 디바이스(960), 및 디스플레이(970)를 포함한다. 실시 예에 따라. 전자 시스템은 카메라 모듈(980)을 더 포함할 수 있다.The electronic system includes an SoC 10, a power source 910, a storage 920, a memory 930, an input/output port 940, an expansion card 950, a network device 960, and a display 970. . According to the embodiment. The electronic system may further include a camera module 980.

SoC(10)는 도 1에 도시된 CPU(100)를 포함할 수 있다. 이때, CPU(100)는 멀티-코어 프로세서일 수 있다.The SoC 10 may include the CPU 100 shown in FIG. 1. In this case, the CPU 100 may be a multi-core processor.

SoC(10)는 구성 요소들(elements; 910~980) 중에서 적어도 하나의 동작을 제어할 수 있다.The SoC 10 may control at least one operation among elements 910 to 980.

파워 소스(910)는 구성 요소들(100, 및 910~980) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.파워 소스(910)는 도 1의 PMIC(40)에 의해 제어될 수 있다.The power source 910 may supply an operating voltage to at least one of the components 100 and 910 to 980. The power source 910 may be controlled by the PMIC 40 of FIG. 1.

스토리지(920)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.The storage 920 may be implemented as a hard disk drive or a solid state drive (SSD).

메모리(930)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 도 1의 외부 메모리(30)에 해당할 수 있다. 실시 예에 따라, 메모리(930)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(10)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 SoC(10)와 메모리(930) 사이에 구현될 수 있다.The memory 930 may be implemented as a volatile memory or a nonvolatile memory, and may correspond to the external memory 30 of FIG. 1. According to an embodiment, a memory controller capable of controlling a data access operation for the memory 930, for example, a read operation, a write operation (or a program operation), or an erase operation may be integrated or embedded in the SoC 10 have. According to another embodiment, the memory controller may be implemented between the SoC 10 and the memory 930.

입출력 포트(940)는 전자 시스템으로 데이터를 전송하거나 또는 전자 시스템(10)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(940)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.The input/output ports 940 refer to ports through which data is transmitted to an electronic system or data output from the electronic system 10 is transmitted to an external device. For example, the input/output port 940 may be a port for connecting a pointing device such as a computer mouse, a port for connecting a printer, or a port for connecting a USB drive.

확장 카드(950)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(950)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.The expansion card 950 may be implemented as a secure digital (SD) card or a multimedia card (MMC). According to an embodiment, the expansion card 950 may be a subscriber identification module (SIM) card or a universal subscriber identity module (USIM) card.

네트워크 디바이스(960)는 전자 시스템을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.The network device 960 refers to a device capable of connecting an electronic system to a wired network or a wireless network.

디스플레이(970)는 스토리지(920), 메모리(930), 입출력 포트(940), 확장 카드(950), 또는 네트워크 디바이스(960)로부터 출력된 데이터를 디스플레이할 수 있다. 디스플레이(970)는 도 1의 디스플레이 디바이스(20)일 수 있다.The display 970 may display data output from the storage 920, the memory 930, the input/output port 940, the expansion card 950, or the network device 960. The display 970 may be the display device 20 of FIG. 1.

카메라 모듈(980)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(980)로부터 출력된 전기적인 이미지는 스토리지(920), 메모리(930), 또는 확장 카드(950)에 저장될 수 있다. 또한, 카메라 모듈 (980)로부터 출력된 전기적인 이미지는 디스플레이(970)를 통하여 디스플레이될 수 있다.The camera module 980 refers to a module capable of converting an optical image into an electrical image. Accordingly, the electrical image output from the camera module 980 may be stored in the storage 920, the memory 930, or the expansion card 950. In addition, the electrical image output from the camera module 980 may be displayed through the display 970.

본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to an embodiment shown in the drawings, this is only exemplary, and those of ordinary skill in the art will appreciate that various modifications and other equivalent embodiments are possible therefrom . Therefore, the true technical protection scope of the present invention should be determined by the technical idea of the attached registration claims.

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: 스몰 코어
1: Electronic System 10: SoC
20: display device 30: external memory
40: PMIC 100: CPU
130: timer 140: display controller
150: GPU 160: memory controller
170: CMU 210: CCI
220: high performance cluster 230: low power cluster
300: switcher 301: kernel
221-1~221-4: Big Core 231-1~231-4: Small Core

Claims (10)

이종 멀티 코어 프로세서를 포함하는 전자 시스템의 동작 방법에 있어서,
상기 이종 멀티 코어 프로세서는
제1 빅 코어와 제2 빅 코어를 포함하는 복수의 빅 코어를 포함하는 빅 코어 클러스터; 및
제1 스몰 코어 및 제2 스몰 코어를 포함하는 스몰 코어 클러스터를 포함하고,
상기 제1 및 제2 빅 코어는 각각 고성능/고전력 코어들이고, 상기 제1 및 제2 스몰 코어는 각각 저성능/저전력 코어들이며,
상기 제1 빅 코어와 상기 제1 스몰 코어는 함께 제1 코어 페어로 매핑되고, 상기 제2 빅 코어와 상기 제2 스몰 코어는 함께 제2 코어 페어로 매핑되며,
상기 동작 방법은,
온도 센서를 이용해서 상기 제1 빅 코어의 온도를 측정하는 단계;
상기 제1 빅 코어의 상기 측정된 온도가 제1 기준온도를 초과하면, 상기 제1 빅 코어에 할당된 제1 CPU 로드로부터의 적어도 하나의 태스크를 상기 제1 스몰 코어로 스위칭하는 단계;
상기 제1 빅 코어의 상기 측정된 온도가 상기 제1 기준온도보다 높은 제2 기준온도를 초과하면, 상기 복수의 빅 코어 중 상기 제1 빅 코어에 물리적으로 인접한, 상기 제2 빅 코어에 할당된 제2 CPU 로드로부터의 적어도 하나의 태스크를 상기 제2 스몰 코어로 스위칭하는 단계;
상기 제1 기준온도를 초과한 상기 제1 코어의 측정된 온도, 및 상기 제2 빅 코어가 상기 제1 빅 코어에 물리적으로 인접하다는 결정에 따라, 상기 제1 코어 페어와 상기 제2 코어 페어에 각각 다른 DVFS(Dynamic Voltage and Frequency Scailing) 테이블을 적용하는 단계를 포함하는, 전자 시스템의 동작방법.
In the operating method of an electronic system including a heterogeneous multi-core processor,
The heterogeneous multi-core processor
A big core cluster including a plurality of big cores including a first big core and a second big core; And
Including a small core cluster comprising a first small core and a second small core,
The first and second big cores are high performance/high power cores, respectively, the first and second small cores are low performance/low power cores, respectively,
The first big core and the first small core are mapped to a first core pair together, the second big core and the second small core are mapped to a second core pair together,
The operation method,
Measuring the temperature of the first big core using a temperature sensor;
Switching at least one task from a first CPU load allocated to the first big core to the first small core when the measured temperature of the first big core exceeds a first reference temperature;
When the measured temperature of the first big core exceeds a second reference temperature higher than the first reference temperature, the plurality of big cores are physically adjacent to the first big core and allocated to the second big core. Switching at least one task from a second CPU load to the second small core;
According to the measured temperature of the first core exceeding the first reference temperature and the determination that the second big core is physically adjacent to the first big core, the first core pair and the second core pair are A method of operating an electronic system, including applying different DVFS (Dynamic Voltage and Frequency Scailing) tables.
제1항에 있어서,
상기 제1 스몰 코어로 상기 제1 CPU 로드로부터의 상기 적어도 하나의 태스크를 스위칭하는 단계는
상기 제1 코어 페어에서 지정된 시간에 상기 제1 빅 코어 및 상기 제1 스몰 코어 중 단 하나만 활성화시키는 인-커널 스위칭을 포함하고,
상기 제2 스몰 코어로 상기 제2 CPU 로드로부터의 상기 적어도 하나의 태스크를 스위칭하는 단계는
상기 제2 코어 페어에서 지정된 시간에 상기 제2 빅 코어 및 상기 제2 스몰 코어 중 단 하나만 활성화시키는 인-커널 스위칭을 포함하는, 전자 시스템의 동작방법.
The method of claim 1,
Switching the at least one task from the first CPU load to the first small core comprises:
Including in-kernel switching to activate only one of the first big core and the first small core at a specified time in the first core pair,
Switching the at least one task from the second CPU load to the second small core comprises:
And in-kernel switching to activate only one of the second big core and the second small core at a specified time in the second core pair.
제1항에 있어서,
상기 제1 빅 코어의 상기 측정된 온도가 상기 제1 기준온도보다 작은 제3 기준온도 이하로 떨어질 때까지, 상기 제1 빅 코어 및 상기 제2 빅 코어 중 적어도 하나를 클락 게이팅 및 파워 게이팅 중 적어도 하나를 수행하는 단계를 더 포함하는, 전자 시스템의 동작방법.
The method of claim 1,
At least one of the first big core and the second big core is at least one of clock gating and power gating until the measured temperature of the first big core falls below a third reference temperature less than the first reference temperature. The method of operating an electronic system, further comprising the step of performing one.
제3항에 있어서, 상기 제1 CPU 로드로부터의 상기 적어도 하나의 태스크를 상기 제1 스몰 코어로 스위칭하는 단계는,
상기 제1 빅 코어의 상기 제1 CPU 로드의 잔여 태스크가 저장된 제1 잡-큐를 상기 제1 스몰 코어로 이동(migrate)시키고,
상기 제2 CPU 로드로부터의 상기 적어도 하나의 태스크를 상기 제2 스몰 코어로 스위칭하는 단계는,
상기 제2 빅 코어의 상기 제2 CPU 로드의 잔여 태스크가 저장된 제2 잡-큐를 상기 제2 스몰 코어로 이동(migrate)시키는 것인, 전자 시스템의 동작방법.
The method of claim 3, wherein switching the at least one task from the first CPU load to the first small core,
The first job-queue in which the remaining tasks of the first CPU load of the first big core are stored is moved to the first small core,
Switching the at least one task from the second CPU load to the second small core,
And moving (migrate) the second job-queue in which the remaining tasks of the second CPU load of the second big core are stored to the second small core.
제4항에 있어서, 상기 제1 잡-큐를 상기 제1 빅 코어에서 상기 제1 스몰 코어로 이동시키는 단계는
상기 제1 빅 코어에 대한 제1 노말 DVFS 테이블에서 상기 제1 스몰 코어에 대해서만 성능 범위를 정의하는 제1 스로틀 DVFS 테이블로 변경하여 사용하고,
상기 제2 잡-큐를 상기 제2 빅 코어에서 상기 제2 스몰 코어로 이동시키는 단계는
상기 제2 빅 코어에 대한 제2 노말 DVFS 테이블에서 상기 제2 스몰 코어에 대해서만 성능 범위를 정의하는 제2 스로틀 DVFS 테이블로 변경하여 사용하는 전자 시스템의 동작방법.
The method of claim 4, wherein the step of moving the first job-queue from the first big core to the first small core
The first normal DVFS table for the first big core is changed to a first throttle DVFS table that defines a performance range only for the first small core and used,
The step of moving the second job-queue from the second big core to the second small core
A method of operating an electronic system using a second normal DVFS table for the second big core to a second throttle DVFS table defining a performance range only for the second small core.
제5항에 있어서, 상기 제1 노말 DVFS 테이블 및 상기 제1 스로틀 DVFS 테이블은 상기 제1 스몰 코어에 대한 각각의 성능 범위를 정의하는 것이 서로 다르고,
상기 제2 노말 DVFS 테이블 및 상기 제2 스로틀 DVFS 테이블은 상기 제2 스몰 코어에 대한 각각의 성능 범위를 정의하는 것이 서로 다른, 전자 시스템의 동작방법.
The method of claim 5, wherein the first normal DVFS table and the first throttle DVFS table are different from each other in defining the respective performance ranges for the first small core,
The second normal DVFS table and the second throttle DVFS table are different from each other in defining respective performance ranges for the second small core.
제5항에 있어서, 상기 제1 및 제2 노말 DVFS 테이블과 상기 제1 및 제2 스로틀 DVFS 테이블은
상기 이종 멀티 코어 프로세서 내 복수의 빅 코어들 중 활성화 된 빅 코어의 개수에 따라 변하는, 전자 시스템의 동작 방법.
The method of claim 5, wherein the first and second normal DVFS tables and the first and second throttle DVFS tables are
A method of operating an electronic system that varies according to the number of activated big cores among a plurality of big cores in the heterogeneous multi-core processor.
제1항에 있어서,
상기 제1 빅 코어의 상기 측정된 온도가 제3 기준온도 아래로 떨어지면, 상기 제1 스몰코어로부터의 상기 제1 CPU 로드를 상기 제1 빅 코어로 스위칭하는 단계; 및
상기 제1 빅 코어의 상기 측정된 온도가 제4 기준온도 아래로 떨어지면, 상기 제2 스몰코어로부터의 상기 제2 CPU 로드를 상기 제2 빅 코어로 스위칭하는 단계를 포함하는, 전자 시스템의 동작방법.
The method of claim 1,
Switching the first CPU load from the first small core to the first big core when the measured temperature of the first big core falls below a third reference temperature; And
When the measured temperature of the first big core falls below a fourth reference temperature, switching the second CPU load from the second small core to the second big core. .
이종 멀티 코어 포로세서를 포함하고,
상기 이종 멀티 코어 프로세서는
제1 빅 코어 및 제2 빅 코어를 포함하는 복수의 빅 코어들, 및 제1 스몰 코어 및 제2 스몰 코어를 포함하는 복수의 스몰 코어들을 포함하고,
상기 제1 빅 코어 및 상기 제1 스몰 코어는 제1 코어 페어로 함께 매핑되고 상기 제2 빅 코어 및 상기 제2 스몰코어는 제2 코어 페어로 함께 매핑되며,
상기 제1 빅 코어와 상기 제2 빅 코어는 상기 제1 스몰코어와 상기 제2 스몰코어 대비 각각 고성능/고전력으로 동작하고;
상기 제1 코어에서의 측정된 온도가 제1 기준온도를 초과하는지 및 상기 제2 빅 코어가 상기 제1 빅 코어에 물리적으로 인접한지에 대한 결정에 따라, 상기 제1 코어 페어와 상기 제2 코어 페어에 각각 다른 DVFS(Dynamic Voltage and Frequency Scaling) 테이블을 적용하는 커널을 포함하는, 전자 시스템.
Including heterogeneous multi-core porcelain,
The heterogeneous multi-core processor
A plurality of big cores including a first big core and a second big core, and a plurality of small cores including a first small core and a second small core,
The first big core and the first small core are mapped together as a first core pair, and the second big core and the second small core are mapped together as a second core pair,
The first big core and the second big core operate at high performance/high power, respectively, compared to the first small core and the second small core;
According to a determination as to whether the measured temperature at the first core exceeds a first reference temperature and whether the second big core is physically adjacent to the first big core, the first core pair and the second core pair An electronic system including a kernel that applies a different DVFS (Dynamic Voltage and Frequency Scaling) table to each.
제9항에서, 상기 커널은
상기 제1 빅 코어의 측정된 온도는 상기 제1 기준온도 이하로 유지하는 한, 제1 노말 DVFS테이블을 상기 제1 코어 페어에 적용하고, 제2 노말 DVFS테이블을 상기 제2 코어 페어에 적용하고,
상기 커널은 상기 제1 빅 코어의 측정된 온도가 상기 제1 기준온도를 초과하면, 제1 스로틀 DVFS 테이블을 상기 제1 코어 페어에 적용하고 제2 스로틀 DVFS 테이블은 상기 제2 코어 페어에 적용하는, 전자 시스템.
In claim 9, the kernel
As long as the measured temperature of the first big core is maintained below the first reference temperature, a first normal DVFS table is applied to the first core pair, and a second normal DVFS table is applied to the second core pair. ,
If the measured temperature of the first big core exceeds the first reference temperature, the kernel applies a first throttle DVFS table to the first core pair and a second throttle DVFS table to the second core pair. , Electronic system.
KR1020200068738A 2020-06-08 2020-06-08 Electronic system including a plurality of heterogeneous cores and operating method therof KR102166644B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200068738A KR102166644B1 (en) 2020-06-08 2020-06-08 Electronic system including a plurality of heterogeneous cores and operating method therof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200068738A KR102166644B1 (en) 2020-06-08 2020-06-08 Electronic system including a plurality of heterogeneous cores and operating method therof

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020130131589A Division KR20150050135A (en) 2013-10-31 2013-10-31 Electronic system including a plurality of heterogeneous cores and operating method therof

Publications (2)

Publication Number Publication Date
KR20200068635A KR20200068635A (en) 2020-06-15
KR102166644B1 true KR102166644B1 (en) 2020-10-16

Family

ID=71081579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200068738A KR102166644B1 (en) 2020-06-08 2020-06-08 Electronic system including a plurality of heterogeneous cores and operating method therof

Country Status (1)

Country Link
KR (1) KR102166644B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127192A1 (en) 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US8250395B2 (en) 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8681159B2 (en) * 2006-08-04 2014-03-25 Apple Inc. Method and apparatus for switching between graphics sources
US20090079746A1 (en) * 2007-09-20 2009-03-26 Apple Inc. Switching between graphics sources to facilitate power management and/or security

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US20080127192A1 (en) 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US8250395B2 (en) 2009-11-12 2012-08-21 International Business Machines Corporation Dynamic voltage and frequency scaling (DVFS) control for simultaneous multi-threading (SMT) processors

Also Published As

Publication number Publication date
KR20200068635A (en) 2020-06-15

Similar Documents

Publication Publication Date Title
US9588577B2 (en) Electronic systems including heterogeneous multi-core processors and methods of operating same
KR102082859B1 (en) System on chip including a plurality of heterogeneous cores and operating method therof
US9696771B2 (en) Methods and systems for operating multi-core processors
KR101703467B1 (en) Dynamic voltage and frequency management based on active processors
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
US11693466B2 (en) Application processor and system on chip
US20130262894A1 (en) System-on-chip, electronic system including same, and method controlling same
US9766647B2 (en) Clock circuit for generating clock signal and semiconductor integrated circuit device including the same
NL2011348A (en) Dynamic voltage frequency scaling method and apparatus.
US9996398B2 (en) Application processor and system on chip
CN109313604B (en) Computing system, apparatus, and method for dynamic configuration of compressed virtual memory
TWI553549B (en) Processor including multiple dissimilar processor cores
Nakada et al. Normally-off computing
US8717371B1 (en) Transitioning between operational modes in a hybrid graphics system
Gough et al. CPU power management
US9323317B2 (en) System and methods for DIMM-targeted power saving for hypervisor systems
US20170068575A1 (en) Hardware Migration between Dissimilar Cores
KR102166644B1 (en) Electronic system including a plurality of heterogeneous cores and operating method therof
KR20140021283A (en) Soc performing multiple dynamic voltage and frequency scaling policies and method using the same
US8717372B1 (en) Transitioning between operational modes in a hybrid graphics system
US20240036627A1 (en) System on chip and semiconductor device including the same
Murti et al. Energy Efficient Embedded Systems
KR20230127824A (en) System on chip, bus power gating method thereof and bus power gating system
KR20230124248A (en) DVFS controlling method, semiconductor device and semiconductor system using the DVFS controlling method
KR20210032213A (en) Method of performing dynamic voltage and frequency scaling based on power step

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant