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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power 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
본 발명은 전자 시스템 및 이의 동작 방법에 관한 것으로, 특히 저전력 코어와 고성능 코어를 포함하는 전자 시스템 및 이의 동작 방법에 관한 것이다.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
전자 시스템(1)은 시스템 온 칩(system on chip(SoC); 10), 외부 메모리 (30), 및 디스플레이 디바이스(20)를 포함한다.The
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
도 1의 실시 예에서, PMIC(40)가 SoC(10)의 외부에 구현되나, 다른 실시 예에서 SoC(10)는 PMIC(40)의 기능을 수행할 수 있는 전력 관리 유닛(power management unit(PMU))을 포함할 수 있다. In the embodiment of FIG. 1, the
프로세서(processor)라고도 불릴 수 있는 CPU(100)는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(100)는 CMU(170)로부터 출력된 동작 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.The
CPU(100)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.The
ROM(110), RAM(120), 및/또는 외부 메모리(30)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(100)의 메모리(미도시)에 로드(load)될 수 있다.Programs and/or data stored in the
ROM(110)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다.
ROM(110)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다.The
RAM(120)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(110 또는 30)에 저장된 프로그램들 및/또는 데이터는 CPU(100)의 제어에 따라 또는 ROM(110)에 저장된 부팅 코드(booting code)에 따라 RAM(120)에 일시적으로 저장될 수 있다. RAM(120)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.The
타이머(130)는 CMU(170)로부터 출력된 동작 클락 신호에 기초하여 시간을 나타내는 카운트 값을 출력할 수 있다.The
GPU(150)는 메모리 컨트롤러(160)에 의해 외부 메모리(30)로부터 리드 (read)된 데이터를 디스플레이 디바이스(20)에 적합한 신호로 변환할 수 있다.The
CMU(170)는 동작 클락 신호를 생성한다. CMU(170)는 위상 동기 루프(phase locked loop(PLL)), 지연 동기 루프(delayed locked loop(DLL)), 또는 크리스탈 오실레이터 등과 같은 클락 신호 생성 장치를 포함할 수 있다.The
동작 클락 신호는 GPU(150)로 공급될 수 있다. 물론, 동작 클락 신호는 다른 구성 요소(예컨대, CPU(100) 또는 메모리 컨트롤러(160) 등)로 공급될 수도 있다. CMU(170)는 동작 클락 신호의 주파수를 변경할 수 있다.The operation clock signal may be supplied to the
CPU(100)는 이종멀티코어, 예컨대 제1 타입 코어 및 제2 타입 코어를 포함할 수 있다. 실시예에 따라 CPU(100)는 제1 타입 코어 및 제2 타입 코어 외에도 제3 타입 코어를 더 포함할 수 있다. The
이하에서 제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
메모리 컨트롤러(160)는 외부 메모리(190)와 인터페이스한다. 메모리 컨트롤러(160)는 외부 메모리(190)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리 (190) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(160)는 호스트의 요청에 따라 외부 메모리(190)에 데이터를 쓰거나 외부 메모리(190)로부터 데이터를 읽을 수 있다.여기서, 호스트는 CPU(100), GPU(150), 또는 디스플레이 컨트롤러(140)와 같은 마스터(master) 장치일 수 있다. The
외부 메모리(30)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(30)는 예컨대 DRAM 일수 있으나 이에 한정되는 것은 아니다.The
예컨대, 외부 메모리(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
각 구성 요소(100, 110, 120, 130, 140, 150, 160 및 170)는 버스(180)를 통하여 서로 통신할 수 있다.Each of the
디스플레이 디바이스(20)는 디스플레이 컨트롤러(140)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스(20)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다.The
디스플레이 컨트롤러(140)는 디스플레이 디바이스(25)의 동작을 제어한다.The
도 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)에서 실행되는 적어도 하나의 애플리케이션(application, 미도시)은 코어(Core)가 태스크를 수행하도록 한다. 커널(301)은 각 애플리케이션으로부터 태스크를 수신하여 각 클러스터, 즉, 각 코어에 대해 자원할당을 수행한다. At least one application (not shown) executed in the
고성능 클러스터(220)는 복수(예를 들어 N개)의 고성능 코어들(221) 및 제1 캐시(225)를 포함한다. 저전력 클러스터(230)는 복수(예를 들어 M개)의 저전력 코어들(231) 및 제2 캐시(235)를 포함한다. 고성능 코어(221)는 높은 전력을 소모하며 높은 동작 주파수로 동작한다. 저전력 코어(231)는 낮은 전력을 소모하며 낮은 동작 주파수로 동작한다. 고성능 코어의 개수(N)와 저전력 코어의 개수(M)는 다를 수도 있고, 같을 수도 있다.The
프로세서(100)는 고성능 코어(221)와 저전력 코어(231)를 포함하며, 각 어플리케이션들에 의해 제공된 CPU 로드에 따라 적절한 코어를 동작시킨다. 프로세서(100)는 CPU 로드가 작으면 저전력 코어(231)를 동작시키고, CPU 로드가 크면 고성능 코어(221)를 동작시킨다.The
또한 프로세서(100)는 동작 중의 코어의 개수에 대한 강제 조정, 사용자 설정(User's Configuration), 시스템 설정 등의 외부 요청에 따라 각 코어들의 동작을 제어하여 SoC(10)를 안정적으로 동작시킨다.In addition, the
커널(301)은 저전력 코어(231)에서 측정된 CPU 로드가 임계값을 초과할 때 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 커널(301)은 고성능 코어(221)에서 측정된 CPU 로드가 제2 임계값보다 작아지면, 태스크(task)를 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다. 커널(301)의 스위칭 동작은 페어(pair) 관계에 있지 않은 코어 간에도 수행될 수 있다.The
커널(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
제1 캐시(225) 및 제2 캐시(235)는 각 코어(221,231)에 포함된 캐시 메모리이다. The
커널(301)은 서로 다른 성능의 코어를 스위칭하는 스위쳐(300)를 포함할 수 있다. The
본 명세서에서 커널(301), 스위쳐(300)라 함은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수 있고, 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록매체, 예컨대 프로세서를 의미할 수도 있다. In this specification, the
즉, 각 구성요소(301,300)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.That is, each
스위쳐(300)는 저전력 코어(231)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)를 초과하는 경우 상기 CPU 로드에 따른 태스크(task)를 저전력 코어(231)로부터 고성능 코어(221)로 스위칭한다. 스위쳐(300)는 고성능 코어(221)에서 측정된 CPU 로드가 저전력(231) 코어의 작업용량(capability)보다 작으면, 고성능 코어(221)로부터 저전력 코어(231)로 스위칭한다.The
도 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
실시예에 따라, 스위쳐(300)는 각 코어 페어의 DVFS 동작점(operating point)에서 빅 코어와 리틀 코어 간의 코어 스위칭을 수행할 수 있다. According to an embodiment, the
예컨대 스위쳐(300)는 제1 코어 페어에서 제1 리틀 코어(231-1)의 잡 큐(job queue)를 제1 빅 코어(221-1)로 이동(migration)시킨 후, 제1 리틀 코어(231-1)를 클락 게이팅 또는 파워 게이팅시킬 수 있다.For example, the
도 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
예를 들어, 스위쳐(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
각 고성능 코어(예컨대, 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
헤테로지니어스(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
예컨대 스위쳐(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
따라서 과열된 빅 코어의 온도를 보다 빨리 냉각시킬 수 있으므로 빅 코어의 열에 의한 손상(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
잦은 코어 스위칭에 의한 오버헤드를 막기 위하여, 제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
노멀(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
실시예에 따라, 스로틀 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
기준 성능(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
도 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
도 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
커널(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
이후 커널(301)은 제1 타입 코어(221-1)를 클락 게이팅 또는 파워 게이팅한다(S45).Thereafter, the
실시예에 따라, 커널(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
커널(301)은 제1 타입 코어(221-1)의 온도가 제2 기준 온도 이하인지 판단한다(S47).The
커널(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
도 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)는 도 1에 도시된 CPU(100)를 포함할 수 있다. 이때, CPU(100)는 멀티-코어 프로세서일 수 있다.The
SoC(10)는 구성 요소들(elements; 910~980) 중에서 적어도 하나의 동작을 제어할 수 있다.The
파워 소스(910)는 구성 요소들(100, 및 910~980) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.파워 소스(910)는 도 1의 PMIC(40)에 의해 제어될 수 있다.The
스토리지(920)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.The
메모리(930)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 도 1의 외부 메모리(30)에 해당할 수 있다. 실시 예에 따라, 메모리(930)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 SoC(10)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 SoC(10)와 메모리(930) 사이에 구현될 수 있다.The
입출력 포트(940)는 전자 시스템으로 데이터를 전송하거나 또는 전자 시스템(10)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(940)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.The input/
확장 카드(950)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(950)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.The
네트워크 디바이스(960)는 전자 시스템을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.The
디스플레이(970)는 스토리지(920), 메모리(930), 입출력 포트(940), 확장 카드(950), 또는 네트워크 디바이스(960)로부터 출력된 데이터를 디스플레이할 수 있다. 디스플레이(970)는 도 1의 디스플레이 디바이스(20)일 수 있다.The
카메라 모듈(980)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(980)로부터 출력된 전기적인 이미지는 스토리지(920), 메모리(930), 또는 확장 카드(950)에 저장될 수 있다. 또한, 카메라 모듈 (980)로부터 출력된 전기적인 이미지는 디스플레이(970)를 통하여 디스플레이될 수 있다.The
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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 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 기준온도보다 작은 제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.
상기 제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.
상기 제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.
상기 제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.
상기 이종 멀티 코어 프로세서 내 복수의 빅 코어들 중 활성화 된 빅 코어의 개수에 따라 변하는, 전자 시스템의 동작 방법.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 빅 코어의 상기 측정된 온도가 제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.
상기 제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.
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)
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)
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 |
-
2020
- 2020-06-08 KR KR1020200068738A patent/KR102166644B1/en active IP Right Grant
Patent Citations (3)
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 |