KR20220059617A - Apparatus and method for managing power of multi-core processor - Google Patents

Apparatus and method for managing power of multi-core processor Download PDF

Info

Publication number
KR20220059617A
KR20220059617A KR1020200144969A KR20200144969A KR20220059617A KR 20220059617 A KR20220059617 A KR 20220059617A KR 1020200144969 A KR1020200144969 A KR 1020200144969A KR 20200144969 A KR20200144969 A KR 20200144969A KR 20220059617 A KR20220059617 A KR 20220059617A
Authority
KR
South Korea
Prior art keywords
core
idle
period
power
cores
Prior art date
Application number
KR1020200144969A
Other languages
Korean (ko)
Other versions
KR102613979B1 (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 KR1020200144969A priority Critical patent/KR102613979B1/en
Publication of KR20220059617A publication Critical patent/KR20220059617A/en
Application granted granted Critical
Publication of KR102613979B1 publication Critical patent/KR102613979B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

Disclosed are an apparatus and method for managing power in a multi-core processor. According to an embodiment of the present invention, the apparatus for managing power in a multi-core processor manages the power in the multi-core processor having a plurality of cores to perform mutually-independent processing operations. The apparatus for managing the multi-core processor includes an effective period calculating unit, an effective period estimating unit, a scheduling unit, and a power control unit. The effective period calculating unit sums up effective periods of the plurality of cores, which are generated at a relevant period of specific periods, and calculates total effective periods in each period of the plurality of cores. The effective period estimating unit estimates the total of effective periods of the plurality of cores which are made at a next period, by using the total effective periods for each period. The scheduling unit allocates the estimated total effective period to each of the plurality of cores to determines an effective prediction period for each core and a commencing tie point of the effective prediction period and generates schedule information including the effective prediction period for each core and the commencing time point of the effective prediction period for each core. The power control unit reduces or shuts off power to the effective core for the effective prediction period of the effective core included in the schedule information, when an effective core, which enters an effective state, of the plurality of cores is made based on the schedule information.

Description

멀티 코어 프로세서 전력 관리 장치 및 방법{Apparatus and method for managing power of multi-core processor}Apparatus and method for managing power of multi-core processor}

본 발명은 멀티 코어 프로세서 전력 관리 장치 및 방법에 관한 것으로서, 더 상세하게는, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 효율적으로 관리하는 멀티 코어 프로세서 전력 관리 장치 및 방법에 관한 것이다.The present invention relates to a multi-core processor power management apparatus and method, and more particularly, to a multi-core processor power management apparatus and method for efficiently managing power of a multi-core processor having a plurality of cores capable of mutually independent arithmetic processing. is about

멀티 코어 프로세서(multi-core processor)는 상호 독립적으로 연산 처리를 수행하는 복수의 코어를 가진 프로세서로서, 싱글 코어 프로세서에 비해 상대적으로 낮은 클럭 주파수로 동작되는 복수의 코어를 통해 작업을 분산 처리하는 프로세서이다.A multi-core processor is a processor having a plurality of cores that independently perform arithmetic processing, and is a processor that distributes tasks through a plurality of cores operated at a relatively lower clock frequency than a single-core processor. am.

그러나, 한국 등록특허공보 제10-1088563호에 개시된 바와 같이, 기존 기술은 멀티 코어 프로세서에 의한 프로그램 실행 시, 단순히 필요한 코어의 수를 판단하고 해당 판단을 기초로 구동할 코어의 수를 제어하기 때문에, 활성 상태(active state)에서 유휴 상태(idle state)로 전환되는 코어의 소비 전력을 신속히 제어할 수 없음은 물론, 유휴 상태에서 활성 상태로 전환되는 코어의 동작을 신속히 재개할 수 없고, 코어들의 불균일한 열화를 방지할 수 없다는 문제점이 있다.However, as disclosed in Korean Patent Publication No. 10-1088563, the existing technology simply determines the number of required cores when executing a program by a multi-core processor and controls the number of cores to be driven based on the determination. , it is not possible to quickly control the power consumption of the core that is switched from the active state to the idle state, and it is not possible to quickly resume the operation of the core that is switched from the idle state to the active state, There is a problem that non-uniform deterioration cannot be prevented.

본 발명이 해결하고자 하는 기술적 과제는, 멀티 코어 프로세서에서 활성 상태와 유휴 상태로 번갈아 전환되는 복수의 코어의 소비 전력과 동작을 신속히 제어하여 멀티 코어 프로세서의 전력 효율과 동작 성능을 개선하고, 코어들의 불균일한 열화를 방지하는 멀티 코어 프로세서 전력 관리 장치 및 방법을 제공하는 것이다.The technical problem to be solved by the present invention is to improve the power efficiency and operation performance of the multi-core processor by quickly controlling the power consumption and operation of a plurality of cores alternately switched between an active state and an idle state in a multi-core processor, and To provide a multi-core processor power management apparatus and method for preventing non-uniform degradation.

본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 장치는, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 장치로서, 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 유휴 기간 산출부; 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 유휴 기간 추정부; 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄링부; 및 상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하는 전력 제어부를 포함한다.A multi-core processor power management apparatus according to an embodiment of the present invention is an apparatus for managing power of a multi-core processor having a plurality of cores capable of mutually independent arithmetic processing, and the plurality of cores generated in a corresponding period at regular intervals. an idle period calculation unit calculating total idle periods for each cycle of the plurality of cores by summing the idle periods of ; an idle period estimator for estimating total idle periods of the plurality of cores that may occur in a next period using the total idle periods for each period; The estimated total idle period is allocated to each of the plurality of cores to determine the start time of the scheduled idle period for each core and the scheduled idle period for each core during the next cycle, and the scheduled idle period for each core and the idle schedule for each core a scheduling unit generating schedule information including a start time of a period; and when an idle core that enters an idle state according to the schedule information occurs among the plurality of cores, a power control unit configured to reduce or block power provided to the idle core during an idle predetermined period of the idle core included in the schedule information includes

일 실시예에 있어서, 상기 유휴 기간 추정부는, 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하도록 구성된다.In an embodiment, the idle period estimator is configured to give a greater weight to a total idle period of a period closer in time to the next period among the total idle periods for each period. and use the periods to estimate a total idle period of the plurality of cores that may occur in the next period.

일 실시예에 있어서, 상기 스케줄링부는, 상기 추정된 토털 유휴 기간을 이용하여 상기 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 제1 결정 모듈; 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정하는 제2 결정 모듈; 상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 제3 결정 모듈; 및 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄 정보 생성 모듈을 포함한다.In an embodiment, the scheduling unit calculates an average operating time for each core in the next cycle using the estimated total idle period, and calculates the power consumption of each core corresponding to the calculated average operating time of the corresponding core. a first determination module for determining the upper limit of the amount of power of ; a second determination module for allocating the estimated total idle period to the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and determining a scheduled idle period for each core; a third determination module for determining a start time of the scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the next cycle is minimized; and a schedule information generation module that generates schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core.

일 실시예에 있어서, 상기 전력 제어부는, 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하도록 구성된다.In one embodiment, the power control unit reduces or blocks the power provided to the idle core during the scheduled idle period of the idle core, but a power restoration time determined to be a predetermined time earlier than the end time of the corresponding idle time period and restore power provided to the idle core.

일 실시예에 있어서, 상기 전력 제어부는, 상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하도록 구성된다.In one embodiment, the power control unit, when at least one other idle core in which the idle core and the scheduled idle period overlap each other in time occurs among the plurality of cores, the power provided to the other idle core is transferred to the other idle core. It is configured to reduce or cut off during the predetermined idle period of the core, and to restore power at a different power recovery time than that of the idle core.

본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법은, 하드웨어와 소프트웨어가 결합된 전력 관리 장치를 이용하여, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 방법으로서, 상기 전력 관리 장치가 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 (a) 단계; 상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 (b) 단계; 상기 전력 관리 장치가 상기 (b) 단계에서 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 (c) 단계; 및 상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소키거나 차단하는 (d) 단계를 포함한다.A multi-core processor power management method according to an embodiment of the present invention is a method for managing power of a multi-core processor having a plurality of cores capable of mutually independent arithmetic processing using a power management device in which hardware and software are combined. (a) calculating, by the power management apparatus, the total idle periods for each period of the plurality of cores by summing the idle periods of the plurality of cores occurring in the corresponding period for each predetermined period; (b) estimating, by the power management device, total idle periods of the plurality of cores that may occur in a next period using the total idle periods for each period; The power management device allocates the total idle period estimated in step (b) to each of the plurality of cores to determine a scheduled idle period for each core and a start time of the respective scheduled idle period for the next cycle, and (c) generating schedule information including a scheduled idle period for each core and a start time of the scheduled idle period for each core; and when an idle core that enters an idle state according to the schedule information occurs among the plurality of cores, the power management device reduces the power provided to the idle core during an idle predetermined period of the idle core included in the schedule information. or (d) blocking it.

일 실시예에 있어서, 상기 (b) 단계는, 상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 단계를 포함한다.In one embodiment, in the step (b), the power management device is weighted in such a way that a greater weight is given to a total idle period of a period closer in time to the next period among the total idle periods for each period. and estimating total idle periods of the plurality of cores that may occur in the next period by using the assigned total idle periods for each period.

일 실시예에 있어서, 상기 (c) 단계는, 상기 전력 관리 장치가 상기 추정된 토털 유휴 기간을 이용하여 상기 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 단계; 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 전력 관리 장치가 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정하는 단계; 상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 전력 관리 장치가 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 단계; 및 상기 전력 관리 장치가 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 단계를 포함한다.In one embodiment, in step (c), the power management device calculates an average operating time for each core in the next cycle using the estimated total idle period, and each corresponding to the calculated average operating time. determining the power consumption of the core as the upper limit of the power consumption of the corresponding core; determining, by the power management device, the estimated total idle period to each of the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and determining the scheduled idle period for each core ; determining, by the power management device, a start time of a scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the next cycle is minimized; and generating, by the power management device, schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core.

일 실시예에 있어서, 상기 (d) 단계는, 상기 전력 관리 장치가 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하는 단계를 포함한다.In one embodiment, in step (d), the power management device reduces or cuts off the power provided to the idle core during the idle scheduled period of the idle core, but a predetermined time from the end of the idle scheduled period and restoring power provided to the idle core at a power recovery time determined as a previous time point.

일 실시예에 있어서, 상기 방법은, 상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시커나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하는 (e) 단계를 더 포함한다.In one embodiment, in the method, when at least one other idle core in which the idle core and the scheduled idle period overlap each other in time occurs among the plurality of cores, the power management device provides power to the other idle cores The method further includes (e) reducing or blocking the other idle core during the predetermined idle period, and restoring the idle core at a different power recovery time point than that of the idle core power recovery time point.

본 발명에 따른 실시예들은, 상술한 동작 또는 방법을 컴퓨터 시스템을 통해 실행하는 컴퓨터 프로그램으로서 기록매체에 기록되는 컴퓨터 프로그램을 이용하여 구현될 수 있다.Embodiments according to the present invention may be implemented using a computer program recorded in a recording medium as a computer program for executing the above-described operation or method through a computer system.

본 발명에 따르면, 멀티 코어 프로세서의 코어들에 대해 일정 주기마다 산출된 토털 유휴 기간을 이용하여 다음 주기에 발생 가능한 상기 코어들의 토털 유휴 기간을 추정하고, 이와 같이 추정된 토털 유휴 기간을 기반으로 스케줄링된 코어별 유휴 예정 기간에 따라 상기 코어들의 소비 전력과 동작을 신속히 제어함으로써, 멀티 코어 프로세서의 전력 효율과 동작 성능을 개선할 수 있다.According to the present invention, the total idle period of the cores of the multi-core processor that can be generated in the next period is estimated using the total idle period calculated at every predetermined period, and scheduling is performed based on the estimated total idle period. By quickly controlling the power consumption and operation of the cores according to the scheduled idle period for each core, the power efficiency and operation performance of the multi-core processor can be improved.

주기별로 산출된 토털 유휴 기간들 중 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하고, 이러한 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여 상기 다음 주기에 발생 가능한 코어들의 토털 유휴 기간을 추정함으로써, 유휴 기간 추정의 정확성과 신뢰성을 개선할 수 있다.Among the total idle periods calculated for each period, a greater weight is given to a total idle period of a period closer in time to the next period, and the total number of cores that can be generated in the next period using the total idle periods for each period to which this weight is assigned By estimating the idle period, the accuracy and reliability of the idle period estimation can be improved.

또한, 유휴 코어의 유휴 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원함으로써, 유휴 상태에서 활성 상태로 전환되는 코어의 동작을 신속히 재개할 수 있다.In addition, by reducing or blocking the power provided to the idle core during the idle period of the idle core, and restoring the power provided to the idle core at a power recovery time determined to be a predetermined time earlier than the end point of the idle period, A core that transitions from an idle state to an active state can quickly resume operation.

또한, 한 주기 동안 소비 가능한 코어별 전력량 상한치를 결정하고, 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 코어별 유휴 예정 기간을 스케줄링함으로써, 멀티 코어 프로세서에 포함된 코어들 간의 불균일한 열화를 방지할 수 있다.In addition, non-uniformity between cores included in the multi-core processor is determined by determining the upper limit of the amount of power consumed by each core during one cycle, and scheduling the idle period for each core so that the amount of power consumed by each core does not exceed the upper limit of the amount of power. deterioration can be prevented.

나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 다양한 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.Furthermore, those of ordinary skill in the art to which the present invention pertains will clearly understand from the following description that various embodiments according to the present invention can solve various technical problems not mentioned above.

도 1은 본 발명이 적용되는 멀티 코어 프로세서의 일례를 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 장치를 나타낸 블록도이다.
도 3은 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법의 전력 제어 프로세스를 나타낸 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법의 스케줄 정보 생성 프로세스를 나타낸 흐름도이다.
도 5는 본 발명에 따라 생성된 스케줄 정보의 일례를 나타낸 도면이다.
도 6은 본 발명에 따라 코어에 제공되는 시간별 전력 레벨의 일례를 나타낸 도표이다.
1 is a diagram showing an example of a multi-core processor to which the present invention is applied.
2 is a block diagram illustrating a multi-core processor power management apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a power control process of a multi-core processor power management method according to an embodiment of the present invention.
4 is a flowchart illustrating a schedule information generation process of a multi-core processor power management method according to an embodiment of the present invention.
5 is a diagram illustrating an example of schedule information generated according to the present invention.
6 is a diagram illustrating an example of an hourly power level provided to a core in accordance with the present invention.

이하, 본 발명의 기술적 과제에 대한 해결 방안을 명확화하기 위해 첨부도면을 참조하여 본 발명의 실시예들을 상세하게 설명한다. 다만, 본 발명을 설명함에 있어서 관련 공지기술에 관한 설명이 오히려 본 발명의 요지를 불명료하게 하는 경우 그에 관한 설명은 생략하기로 한다. 또한, 본 명세서에서 사용되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이들은 설계자, 제조자 등의 의도 또는 관례 등에 따라 달라질 수 있을 것이다. 그러므로 후술되는 용어들의 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings in order to clarify solutions to the technical problems of the present invention. However, in the description of the present invention, if the description of the related known technology rather obscures the gist of the present invention, the description thereof will be omitted. In addition, the terms used in this specification are terms defined in consideration of functions in the present invention, and these may vary according to the intentions or customs of designers, manufacturers, and the like. Therefore, definitions of terms to be described below should be made based on the content throughout this specification.

도 1에는 본 발명이 적용되는 멀티 코어 프로세서(10)의 일례를 나타낸 도면이다.1 is a view showing an example of a multi-core processor 10 to which the present invention is applied.

도 1에 도시된 바와 같이, 본 발명이 적용되는 멀티 코어 프로세서(10)는 상호 독립적으로 연산 처리를 수행하는 복수의 코어(11), 클럭 발생기(12), 전압 레귤레이터(13), 입출력 인터페이스(14), 노스 브리지(north bridge)(15), 메모리 컨트롤러(16) 등을 포함할 수 있다. 이러한 멀티 코어 프로세서(10)는 외부 메모리(20)와 연결될 수 있다. 이러한 멀티 코어 프로세서(10)는 일종의 온칩 시스템으로 구현될 수 있다.1, the multi-core processor 10 to which the present invention is applied has a plurality of cores 11, clock generator 12, voltage regulator 13, input/output interface ( 14 ), a north bridge 15 , a memory controller 16 , and the like. The multi-core processor 10 may be connected to the external memory 20 . The multi-core processor 10 may be implemented as a kind of on-chip system.

멀티 코어 프로세서(10)에 포함되는 코어(11)의 개수는 실시예에 따라 다양하게 변경될 수 있다. 멀티 코어 프로세서(10)에 포함된 코어들은 전부 동일하게 구성되거나, 1 이상의 코어가 다른 코어들과 상이하게 구성될 수 있다. 각각의 코어(11)는 적어도 하나의 실행 유닛, 캐시 메모리, 스케줄러, 분기 예측 회로 등을 포함할 수 있다.The number of cores 11 included in the multi-core processor 10 may be variously changed according to embodiments. All cores included in the multi-core processor 10 may be configured identically, or one or more cores may be configured differently from other cores. Each core 11 may include at least one execution unit, a cache memory, a scheduler, a branch prediction circuit, and the like.

이러한 코어(11)는 노스 브리지(15)에 연결될 수 있다. 노스 브리지(15)는 메모리(20)나 다양한 주변 장치에 대한 인터페이스를 포함하여 각각의 코어(11)에 인터페이스 기능을 제공하도록 구성될 수 있다. 예컨대, 각각의 코어(11)는 메모리(20)에 액세스하기 위한 리퀘스트를 전송할 수 있다. 이러한 리퀘스트는 읽기 리퀘스트나 쓰기 리퀘스트를 포함할 수 있으며, 노스 브리지(15)를 통해 전송될 수 있다. 또한, 메모리(20)에 액세스하기 위한 리퀘스트는 메모리 컨트롤러(16)를 통해 라우팅될 수 있다.This core 11 may be connected to the north bridge 15 . The north bridge 15 may be configured to provide an interface function to each core 11 , including an interface to the memory 20 or various peripheral devices. For example, each core 11 may send a request to access the memory 20 . Such a request may include a read request or a write request, and may be transmitted through the north bridge 15 . Also, requests to access memory 20 may be routed through memory controller 16 .

클럭 발생기(12)는 코어들 각각에 대응하는 클럭 신호를 생성하여 분배하도록 구성된 복수의 PLL(Phase-Locked Loop) 회로를 포함할 수 있다. 즉, 각각의 코어(11)에 제공되는 클럭 신호는 상호 독립적으로 구성될 수 있다. 아래에서 다시 설명하겠지만, 클럭 발생기(12)는 본 발명에 따른 전력 관리 장치(100)의 제어에 따라, 코어별로 제공되는 클럭 신호들의 주파수를 각각 개별적으로 변경하거나 차단할 수 있다. 예컨대, 전력 관리 장치(100)가 클럭 발생기(12)를 제어하는 디지털 신호를 변경하면, 클럭 발생기(12)는 디지털 신호의 변경에 대응하여 특정 코어에 제공되는 클럭 신호의 주파수를 변경하거나 차단할 수 있다. 코어(11)에 제공되는 클럭 신호의 주파수는 해당 코어(11)의 동작에 요구되는 성능에 따라 증가되거나 감소될 수 있다.The clock generator 12 may include a plurality of phase-locked loop (PLL) circuits configured to generate and distribute a clock signal corresponding to each of the cores. That is, the clock signals provided to each core 11 may be configured independently of each other. As will be described again below, the clock generator 12 may individually change or cut off frequencies of clock signals provided to each core under the control of the power management device 100 according to the present invention. For example, when the power management device 100 changes the digital signal for controlling the clock generator 12, the clock generator 12 may change or block the frequency of the clock signal provided to a specific core in response to the change of the digital signal. there is. The frequency of the clock signal provided to the core 11 may be increased or decreased according to the performance required for the operation of the corresponding core 11 .

전압 레귤레이터(13)는 각각의 코어(11)에 개별적으로 공급 전압을 제공하거나, 제공하고 있는 공급 전압을 변경할 수 있다. 아래에서 다시 설명하겠지만, 전압 레귤레이터(13)는 본 발명에 따른 전력 관리 장치(100)의 제어에 따라, 코어별로 제공되는 공급 전압을 각각 개별적으로 변경하거나 차단할 수 있다. 예컨대, 전력 관리 장치(100)가 전압 레귤레이터(13)를 제어하는 디지털 신호를 변경하면, 전압 레귤레이터(13)는 디지털 신호의 변경에 대응하여 해당 코어에 제공되는 전압을 변경하거나 차단할 수 있다.The voltage regulator 13 may individually provide a supply voltage to each core 11 or may change the supply voltage being provided. As will be described again below, the voltage regulator 13 may individually change or block the supply voltage provided to each core under the control of the power management device 100 according to the present invention. For example, when the power management device 100 changes the digital signal for controlling the voltage regulator 13 , the voltage regulator 13 may change or block the voltage provided to the corresponding core in response to the change of the digital signal.

입출력 인터페이스(14)는 노스 브리지(15)에 연결될 수 있다. 입출력 인터페이스(14)는 컴퓨터 시스템에서 사우스 브리지(south bridge)로 기능할 수 있다. 이 경우, 입출력 인터페이스(14)에 다양한 주변 장치 버스들이 연결될 수 있다. 예컨대, PCI(Peripheral Component Interconnect) 버스, PCI-X(PCI-Extended) 버스, PCIE(PCI Express) 버스, GBE(Gigabit Ethernet) 버스, USB(Universal Serial Bus) 등이 입출력 인터페이스(14)에 연결될 수 있다. 이러한 주변 장치 버스에는 다양한 주변 장치들이 연결될 수 있다. 이러한 주변 장치들은 센서, 키보드, 마우스, 프린터, 스캐너, 외부 저장 장치, 네트워크 인터페이스 카드 등을 선택적으로 포함할 수 있다. 주변 장치 버스를 통해 입출력 인터페이스(14)에 연결되는 주변 장치들 중 적어도 일부는 DMA(Direct Memory Access)를 이용하여 메모리 액세스 리퀘스트를 전송할 수 있다. 이러한 리퀘스트들은 입출력 인터페이스(14)를 통해 노스 브리지(15)에 전달될 수 있으며, 메모리 컨트롤러(16)를 통해 라우팅될 수 있다.The input/output interface 14 may be connected to the north bridge 15 . The input/output interface 14 may function as a south bridge in the computer system. In this case, various peripheral device buses may be connected to the input/output interface 14 . For example, a Peripheral Component Interconnect (PCI) bus, a PCI-Extended (PCI-X) bus, a PCI Express (PCIE) bus, a Gigabit Ethernet (GBE) bus, a Universal Serial Bus (USB), etc. may be connected to the input/output interface 14 . there is. Various peripheral devices may be connected to this peripheral device bus. These peripheral devices may optionally include a sensor, a keyboard, a mouse, a printer, a scanner, an external storage device, a network interface card, and the like. At least some of the peripheral devices connected to the input/output interface 14 through the peripheral device bus may transmit a memory access request using direct memory access (DMA). These requests may be transmitted to the north bridge 15 through the input/output interface 14 and may be routed through the memory controller 16 .

한편, 본 발명에 따른 전력 관리 장치(100)는 이러한 멀티 코어 프로세서(10)에서 복수의 코어(11)에 의해 소비되는 전력을 관리하도록 구성된다. 이를 위해, 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)의 노스 브리지(15)에 마련될 수 있다. 이러한 전력 관리 장치(100)는 일종의 컴퓨팅 장치로서 프로세서, 메모리 등과 같은 하드웨어와, 하드웨어를 통해 실행되는 소프트웨어의 결합으로 구성될 수 있다. 실시예에 따라, 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)의 외부에 마련되어 멀티 코어 프로세서(10)와 연동하도록 구성될 수도 있다.Meanwhile, the power management apparatus 100 according to the present invention is configured to manage power consumed by the plurality of cores 11 in the multi-core processor 10 . To this end, the power management apparatus 100 may be provided in the north bridge 15 of the multi-core processor 10 . The power management device 100 is a kind of computing device and may be configured by combining hardware such as a processor and memory and software executed through the hardware. According to an embodiment, the power management apparatus 100 may be provided outside the multi-core processor 10 and configured to interwork with the multi-core processor 10 .

도 2에는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 장치(100)가 블록도로 도시되어 있다.2 is a block diagram illustrating a multi-core processor power management apparatus 100 according to an embodiment of the present invention.

도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 전력 관리 장치(100)는 유휴 기간 산출부(110), 유휴 기간 추정부(120), 스케줄링부(130) 및 전력 제어부(140)를 포함한다.As shown in FIG. 2 , the power management apparatus 100 according to an embodiment of the present invention includes an idle period calculator 110 , an idle period estimator 120 , a scheduling unit 130 , and a power controller 140 . includes

상기 유휴 기간 산출부(110)는 일정 주기마다 해당 주기에 발생한 복수의 코어(11)의 유휴 기간들을 모두 합산하여, 상기 복수의 코어(11)의 주기별 토털 유휴 기간들을 산출하도록 구성된다. 예컨대, 각각의 주기에 대응하는 복수의 코어(11)의 토털 유휴 기간 Pt은 아래 수학식 1과 같이 산출될 수 있다.The idle period calculator 110 is configured to calculate the total idle periods for each period of the plurality of cores 11 by summing up all the idle periods of the plurality of cores 11 occurring in the corresponding period for each predetermined period. For example, the total idle period Pt of the plurality of cores 11 corresponding to each cycle may be calculated as in Equation 1 below.

[수학식 1][Equation 1]

Pt(N) = P1 + P2 + … + Pt(N) = P1 + P2 + … + PnPn

수학식 1에서, Pt(N)은 제N차 주기에서 발생한 복수의 코어의 토털 유휴 기간을 나타내고, Pn은 제N차 주기에서 발생한 코어n의 유휴 기간을 나타낸다.In Equation 1, Pt(N) represents the total idle period of the plurality of cores generated in the Nth cycle, and Pn represents the idle time of the core n generated in the Nth cycle.

이 경우, 상기 유휴 기간 산출부(110)는 복수의 코어(11)에 각각 대응하는 복수의 타이머(timer)를 포함할 수 있다. 각각의 타이머는 대응 코어의 동작이 감지되면 정지되고, 대응 코어의 동작이 정지되면 동작 정지 후 경과 시간을 측정하여 대응 코어의 유휴 기간을 누적적으로 측정할 수 있다. 새로운 주기가 도래하면, 복수의 타이머는 리셋될 수 있다.In this case, the idle period calculator 110 may include a plurality of timers respectively corresponding to the plurality of cores 11 . Each timer is stopped when the operation of the corresponding core is detected, and when the operation of the corresponding core is stopped, the idle period of the corresponding core can be cumulatively measured by measuring the elapsed time after the operation is stopped. When a new period arrives, the plurality of timers may be reset.

상기 유휴 기간 추정부(120)는 상기와 같이 산출된 주기별 토털 유휴 기간들을 이용하여, 다음 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정하도록 구성된다.The idle period estimator 120 is configured to estimate the total idle periods of the plurality of cores 11 that may occur in the next period using the calculated total idle periods for each period as described above.

이 경우, 유휴 기간 추정부(120)는 주기별 토털 유휴 기간들 중 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치(weight)를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 다음 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정하도록 구성될 수 있다. 예컨대, 유휴 기간 추정부(120)는 아래 수학식 2와 같이 가중 평균을 이용하여 다음 주기인 제N+1차 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정할 수 있다.In this case, the idle period estimator 120 assigns a greater weight to a total idle period of a period closer in time to the next period among total idle periods for each period total idle period for each period in which a weight is assigned to each total idle period Using the periods, it may be configured to estimate a total idle period of the plurality of cores 11 that may occur in the next period. For example, the idle period estimator 120 may estimate the total idle period of the plurality of cores 11 that may occur in the N+1th cycle, which is the next cycle, using a weighted average as shown in Equation 2 below.

[수학식 2][Equation 2]

ePtePt (N+1) = ((N+1) = ( ww nn ·Pt(N) + ·Pt(N) + ww nn -1-One ·Pt(N-1) + … + · Pt(N-1) + … + ww nn -m-m ·Pt(N-m))/(m+1)Pt(N-m))/(m+1)

수학식 2에서, ePt(N+1)는 제N+1차 주기에 대해 추정된 토털 유휴 기간을 나타내고, Pt(N)은 제N차 주기에서 산출된 토털 유휴 기간을 나타내고, wn 는 가중치를 나타낸다.In Equation 2, ePt(N+1) denotes the total idle period estimated for the N+1th period, Pt(N) denotes the total idle period calculated in the Nth period, w n represents the weight.

이 경우, 상기 유휴 기간 추정부(120)는 코어별로 현재 시점에서 소급하여 일정 시간 내에 도래했던 주기들에 대해서만 해당 주기에 측정된 토털 유휴 기간을 저장할 수 있다. 이를 위해, 유휴 기간 추정부(120)는 FIFO(First-In First-Out) 메모리를 포함할 수 있다. FIFO 메모리는 현재 시점에서 소급하여 일정 시간 내에 도래했던 주기들에서 각각 측정된 토털 유휴 기간들을 해당 주기별로 저장할 수 있다. 그리고 새로운 회차의 주기가 도래하면, FIFO 메모리에 저장된 토털 유휴 기간들 중 가장 오래된 주기에서 측정된 토털 유휴 기간이 삭제되고, 새로운 회차의 주기에 측정된 토털 유휴 기간이 FIFO 메모리에 새롭게 저장된다.In this case, the idle period estimator 120 may store the total idle period measured in the corresponding period only for periods that have arrived within a predetermined time retrospectively from the current time point for each core. To this end, the idle period estimator 120 may include a first-in first-out (FIFO) memory. The FIFO memory can store total idle periods measured in periods that have arrived within a certain time retrospectively from the current point in time for each period. And when a new cycle period arrives, the total idle period measured in the oldest period among total idle periods stored in the FIFO memory is deleted, and the total idle period measured in the new cycle period is newly stored in the FIFO memory.

상기 스케줄링부(130)는 상기와 같이 추정된 토털 유휴 기간을 상기 복수의 코어(11)에 각각 할당하여 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하도록 구성된다.The scheduling unit 130 allocates the total idle period estimated as described above to the plurality of cores 11, respectively, and determines the scheduled idle period for each core during the next cycle and the start time of the scheduled idle period for each core, and generate schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core.

이를 위해, 상기 스케줄링부(130)는 제1 결정 모듈(132), 제2 결정 모듈(134), 제3 결정 모듈(136) 및 스케줄 정보 생성 모듈(138)을 포함할 수 있다.To this end, the scheduling unit 130 may include a first determination module 132 , a second determination module 134 , a third determination module 136 , and a schedule information generation module 138 .

상기 제1 결정 모듈(132)은 상기 추정된 토털 유휴 기간을 이용하여 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정할 수 있다. 예컨대, 제1 결정 모듈(132)은 한 주기에 해당하는 시간에서 상기 추정된 토털 유휴 기간에 해당하는 시간을 감산하여 토털 동작 시간을 산출하고, 산출된 토털 동작 시간을 멀티 코어 프로세서(10)의 코어 개수로 나누어 코어별 평균 동작 시간을 산출할 수 있다. 그 다음, 제1 결정 모듈(132)은 각각의 코어의 시간당 소비 전력에 상기 평균 동작 시간을 곱하여 상기 소비 전력량을 산출할 수 있다.The first determination module 132 calculates an average operating time for each core in the next cycle using the estimated total idle period, and calculates the power consumption of each core corresponding to the calculated average operating time as the power consumption of the corresponding core. The upper limit can be determined. For example, the first determination module 132 calculates the total operation time by subtracting the time corresponding to the estimated total idle period from the time corresponding to one cycle, and calculates the total operation time of the multi-core processor 10 . It is possible to calculate the average operating time for each core by dividing by the number of cores. Next, the first determination module 132 may calculate the amount of power consumption by multiplying the power consumption per time of each core by the average operating time.

상기 제2 결정 모듈(134)은 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정할 수 있다. 이 경우, 코어별 유휴 예정 기간은 멀티 코어 프로세서(10)에 주어진 작업의 종류나 연산량 등을 고려하여 결정될 수 있다.The second determination module 134 allocates the estimated total idle period to each of the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and is configured to be idle for each core. can be decided In this case, the scheduled idle period for each core may be determined in consideration of the type of task or amount of computation given to the multi-core processor 10 .

상기 제3 결정 모듈(136)은 상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정할 수 있다. 예컨대, 제3 결정 모듈(136)은 멀티 코어 프로세서(10)에 주어진 작업의 종류나 연산량이 허용하는 한도 내에서 각 코어별 유휴 예정 기간이 시간상 서로 겹치지 않도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정할 수 있다.The third determining module 136 may determine a start time of the scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the next cycle is minimized. For example, the third determining module 136 determines the start time of the scheduled idle period for each core so that the scheduled idle period for each core does not overlap in time within the limit allowed by the type of task or the amount of computation given to the multi-core processor 10 . can decide

상기 스케줄 정보 생성 모듈(138)은 제2 결정 모듈(134)에 의해 결정된 코어별 유휴 예정 기간과 제3 결정 모듈(136)에 의해 결정된 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성할 수 있다.The schedule information generation module 138 generates schedule information including the start time of the scheduled idle period for each core determined by the second determination module 134 and the scheduled idle period for each core determined by the third determination module 136 . can do.

일 실시예에 있어서, 상기 스케줄링부(130)는 상기와 같이 생성된 스케줄 정보를 해당 멀티 코어 프로세서(10)에 작업을 할당하는 소정 기능부로 전송하도록 구성될 수 있다. 이 경우, 상기 기능부는 멀티 코어 프로세서(10)를 운영하는 OS(Operating System)일 수 있다.In one embodiment, the scheduling unit 130 may be configured to transmit the generated schedule information as described above to a predetermined functional unit for allocating tasks to the multi-core processor 10 . In this case, the functional unit may be an operating system (OS) for operating the multi-core processor 10 .

상기 전력 제어부(140)는 다음 주기가 도래하여 상기 복수의 코어(11) 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 유휴 코어에 제공되는 전력을 감소시키거나 차단하도록 구성된다.When an idle core that enters an idle state according to the schedule information occurs among the plurality of cores 11 when the next cycle arrives, the power control unit 140 idles for a predetermined idle period of the idle core included in the schedule information. configured to reduce or block power provided to the core.

이를 위해, 상기 전력 제어부(140)는 클럭 발생기(12)를 제어하여 코어별로 제공되는 클럭 신호들의 주파수를 각각 개별적으로 변경하거나 차단하는 클럭 주파수 제어 모듈(142)과, 전압 레귤레이터(13)를 제어하여 코어별로 제공되는 공급 전압을 각각 개별적으로 변경하거나 차단하는 전압 제어 모듈(144)을 포함할 수 있다.To this end, the power control unit 140 controls the clock frequency control module 142 for individually changing or blocking the frequency of the clock signals provided to each core by controlling the clock generator 12 , and the voltage regulator 13 . Thus, the voltage control module 144 for individually changing or blocking the supply voltage provided to each core may be included.

일 실시예에 있어서, 상기 전력 제어부(140)는 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에, 상기 유휴 코어에 제공되는 전력을 복원하도록 구성될 수 있다. 이는 유휴 코어로 하여금 활성 상태로 전환되기 전에 동작 재개 준비를 완료하여 작업이 요청된 순간 바로 작업을 개시하도록 하기 위함이다.In one embodiment, the power control unit 140 reduces or cuts the power provided to the idle core during the scheduled idle period of the idle core, but power determined as a time point ahead of the end time of the corresponding idle time period At the time of restoration, it may be configured to restore the power provided to the idle core. This is so that the idle core prepares to resume operation before being converted to the active state and starts the task immediately when the task is requested.

또한, 전력 제어부(140)는 복수의 코어(11) 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하도록 구성될 수 있다. 이는 복수의 코어(11)에 공급되는 전체 전력이 순간적으로 급증하는 것을 방지하기 위함이다.In addition, when at least one other idle core in which the idle core and the scheduled idle period overlap in time from among the plurality of cores 11 occurs, the power control unit 140 transmits the power provided to the other idle core to the other idle core. It may be configured to reduce or cut off during a predetermined idle period of , and to restore a power recovery time different from that of the idle core. This is to prevent an instantaneous surge in the total power supplied to the plurality of cores 11 .

도 3에는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법의 전력 제어 프로세스가 흐름도로 도시되어 있다. 도 3을 참조하여 상기 전력 관리 장치(100)의 세부 동작들을 시계열적으로 설명한다.3 is a flowchart illustrating a power control process of a multi-core processor power management method according to an embodiment of the present invention. Detailed operations of the power management apparatus 100 will be described in time series with reference to FIG. 3 .

도 3에 도시된 바와 같이, 상기 전력 관리 장치(100)는 일정 주기마다 해당 주기에 발생한 복수의 코어(11)의 유휴 기간들을 모두 합산하여, 상기 복수의 코어(11)의 주기별 토털 유휴 기간들을 산출할 수 있다.As shown in FIG. 3 , the power management apparatus 100 sums up all the idle periods of the plurality of cores 11 occurring in the corresponding period for each predetermined period, and thus the total idle period for each period of the plurality of cores 11 . can be calculated.

예컨대, 제N차 주기가 도래한 경우, 상기 전력 관리 장치(100)는 복수의 코어(11) 각각의 동작 상태를 모니터링하여 해당 주기에서의 코어별 유휴 기간을 측정할 수 있다(S300, S310).For example, when the Nth cycle arrives, the power management apparatus 100 may monitor the operation state of each of the plurality of cores 11 to measure the idle period for each core in the corresponding cycle (S300, S310). .

그 다음, 상기 전력 관리 장치(100)는 제N차 주기에서 측정된 코어별 유휴 기간을 모두 합산하여 제N차 주기에서의 토털 유휴 기간을 산출 및 저장할 수 있다.Next, the power management apparatus 100 may calculate and store the total idle period in the Nth cycle by summing up all idle periods for each core measured in the Nth cycle.

그 다음, 상기 전력 관리 장치(100)는 상기 제N차 주기까지 산출되어 주기별 토털 유휴 기간들을 이용하여, 제N+1차 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정할 수 있다(S330).Next, the power management apparatus 100 estimates the total idle periods of the plurality of cores 11 that may occur in the N+1th cycle by using the total idle periods for each cycle calculated up to the Nth cycle. It can be (S330).

이 경우, 상기 전력 관리 장치(100)는 주기별 토털 유휴 기간들 중 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치(weight)를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 제N+1차 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정할 수 있다. 예컨대, 상기 전력 관리 장치(100)는 상기 수학식 2와 같이 가중 평균을 이용하여 제N+1차 주기에 발생 가능한 복수의 코어(11)의 토털 유휴 기간을 추정할 수 있다.In this case, the power management apparatus 100 assigns a greater weight to a total idle period of a period closer in time to the next period among total idle periods for each period in such a way that a weight is assigned to the total idle period for each period. Using the periods, it is possible to estimate the total idle period of the plurality of cores 11 that may occur in the N+1th cycle. For example, the power management apparatus 100 may estimate the total idle period of the plurality of cores 11 that may occur in the N+1th cycle by using the weighted average as in Equation 2 above.

그 다음, 상기 전력 관리 장치(100)는 상기와 같이 추정된 토털 유휴 기간을 기초로 제N+1차 주기에서의 코어별 유휴 예정 기간을 스케줄링하여 스케줄 정보를 생성할 수 있다(S340). 즉, 상기 전력 관리 장치(100)는 상기 추정된 토털 유휴 기간을 복수의 코어(11)에 각각 할당하여 제N+1차 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성할 수 있다.Next, the power management apparatus 100 may generate schedule information by scheduling an idle scheduled period for each core in the N+1th cycle based on the total idle period estimated as described above ( S340 ). That is, the power management apparatus 100 allocates the estimated total idle period to the plurality of cores 11, respectively, and the scheduled idle period for each core during the N+1th cycle and the start time of the scheduled idle period for each core. may be determined, and schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core may be generated.

그 다음, 상기 전력 관리 장치(100)는 제N+1차 주기가 도래하여 상기 복수의 코어(11) 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 유휴 코어에 제공되는 전력을 감소시키거나 차단할 수 있다(S350). 이 경우, 상기 전력 관리 장치(100)는 클럭 발생기(12)를 제어하여 유휴 코어에 제공되는 클럭 신호들의 주파수를 제한 또는 차단하거나, 전압 레귤레이터(13)를 제어하여 유휴 코어에 제공되는 공급 전압을 제한 또는 차단하거나, 클럭 신호의 주파수와 공급 전압을 모두 제한 또는 차단할 수 있다.Next, when an idle core that enters an idle state according to the schedule information occurs among the plurality of cores 11 when an N+1th cycle arrives, the power management apparatus 100 includes the plurality of cores included in the schedule information. Power provided to the idle core may be reduced or cut off during the idle time period of the idle core ( S350 ). In this case, the power management device 100 controls the clock generator 12 to limit or block the frequency of clock signals provided to the idle core, or controls the voltage regulator 13 to control the supply voltage provided to the idle core. It can limit or block, or limit or block both the frequency of the clock signal and the supply voltage.

일 실시예에 있어서, 상기 전력 관리 장치(100)는 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에, 상기 유휴 코어에 제공되는 전력을 복원할 수 있다. 이는 유휴 코어로 하여금 활성 상태로 전환되기 전에 동작 재개 준비를 완료하여 작업이 요청된 순간 바로 작업을 개시하도록 하기 위함이다.In one embodiment, the power management device 100 reduces or blocks the power provided to the idle core during the scheduled idle period of the idle core, but is determined to be a predetermined time earlier than the end time of the idle scheduled period. At the time of power restoration, power provided to the idle core may be restored. This is so that the idle core prepares to resume operation before being converted to the active state and starts the task immediately when the task is requested.

또한, 상기 전력 관리 장치(100)는 복수의 코어(11) 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원할 수 있다. 이는 복수의 코어(11)에 공급되는 전체 전력이 순간적으로 급증하는 것을 방지하기 위함이다.In addition, when at least one other idle core in which the idle core and the scheduled idle period overlap in time from among the plurality of cores 11 occurs, the power management apparatus 100 transmits the power provided to the other idle core to the other idle core. The idle core may be reduced or blocked during the predetermined idle period, but may be restored at a power recovery time different from the power recovery time of the idle core. This is to prevent an instantaneous surge in the total power supplied to the plurality of cores 11 .

그리고 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)의 전원이 턴오프될 때까지 상술한 과정들을 반복할 수 있다(S360, S370).In addition, the power management apparatus 100 may repeat the above-described processes until the power of the multi-core processor 10 is turned off ( S360 and S370 ).

도 4에는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법의 스케줄 정보 생성 프로세스가 흐름도로 도시되어 있다. 도 4를 참조하여, 상기 전력 관리 장치(100)의 세부 동작들을 시계열적으로 설명한다.4 is a flowchart illustrating a schedule information generation process of a multi-core processor power management method according to an embodiment of the present invention. Detailed operations of the power management apparatus 100 will be described in time series with reference to FIG. 4 .

도 4에 도시된 바와 같이, 상기 전력 관리 장치(100)는 상기와 같이 추정된 복수의 코어(11)의 토털 유휴 기간을 기초로, 다음 주기에 해당하는 제N+1차 주기에서의 코어별 유휴 예정 기간을 스케줄링할 수 있다.As shown in FIG. 4 , the power management device 100 is configured for each core in the N+1th cycle corresponding to the next cycle, based on the total idle period of the plurality of cores 11 estimated as described above. Scheduled idle periods can be scheduled.

이 경우, 상기 전력 관리 장치(100)는 제N+1차 주기에 대해 추정된 토털 유휴 기간을 복수의 코어(11)에 각각 할당하여 제N+1차 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성할 수 있다.In this case, the power management apparatus 100 allocates the total idle period estimated for the N+1th cycle to the plurality of cores 11, respectively, and includes the scheduled idle period for each core during the N+1th cycle and the A start time of the scheduled idle period for each core may be determined, and schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core may be generated.

즉, 상기 전력 관리 장치(100)는 우선 상기 추정된 토털 유휴 기간을 이용하여 제N+1차 주기에서의 코어별 평균 동작 시간을 산출할 수 있다(S400). 예컨대, 상기 전력 관리 장치(100)는 한 주기에 해당하는 시간에서 상기 추정된 토털 유휴 기간에 해당하는 시간을 감산하여 토털 동작 시간을 산출하고, 산출된 토털 동작 시간을 멀티 코어 프로세서(10)의 코어 개수로 나누어 코어별 평균 동작 시간을 산출할 수 있다.That is, the power management apparatus 100 may first calculate the average operating time for each core in the N+1th cycle using the estimated total idle period ( S400 ). For example, the power management apparatus 100 calculates a total operation time by subtracting a time corresponding to the estimated total idle period from a time corresponding to one cycle, and calculates the total operation time of the multi-core processor 10 . It is possible to calculate the average operating time for each core by dividing by the number of cores.

그 다음, 상기 전력 관리 장치(100)는 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정할 수 있다(S410). 이 경우, 상기 전력 관리 장치(100)는 각각의 코어의 시간당 소비 전력에 상기 평균 동작 시간을 곱하여 상기 소비 전력량을 산출할 수 있다.Next, the power management apparatus 100 may determine the power consumption of each core corresponding to the calculated average operating time as the upper limit of the power amount of the corresponding core ( S410 ). In this case, the power management apparatus 100 may calculate the amount of power consumption by multiplying the power consumption per hour of each core by the average operating time.

그 다음, 상기 전력 관리 장치(100)는 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정할 수 있다(S420). 이 경우, 코어별 유휴 예정 기간은 멀티 코어 프로세서(10)에 주어진 작업의 종류나 연산량 등을 고려하여 결정될 수 있다.Then, the power management apparatus 100 allocates the estimated total idle period to the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and the respective cores are idle. A scheduled period may be determined (S420). In this case, the scheduled idle period for each core may be determined in consideration of the type of task or amount of computation given to the multi-core processor 10 .

그 다음, 상기 전력 관리 장치(100)는 제N+1차 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정할 수 있다(S430). 예컨대, 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)에 주어진 작업의 종류나 연산량이 허용하는 한도 내에서 각 코어별 유휴 예정 기간이 시간상 서로 겹치지 않도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정할 수 있다.Next, the power management apparatus 100 may determine a start time of the scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the N+1th cycle is minimized ( S430 ). For example, the power management device 100 determines the start time of the scheduled idle period for each core so that the scheduled idle period for each core does not overlap in time within the limit allowed by the type of task or the amount of computation given to the multi-core processor 10 . can decide

그 다음, 상기 전력 관리 장치(100)는 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성할 수 있다(S440). 실시예에 따라, 상기 전력 관리 장치(100)는 상기와 같이 생성된 스케줄 정보를 해당 멀티 코어 프로세서(10)에 작업을 할당하는 소정 기능부로 전송할 수 있다. 이 경우, 상기 기능부는 멀티 코어 프로세서(10)를 운영하는 OS(Operating System)일 수 있다.Next, the power management apparatus 100 may generate schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core ( S440 ). According to an embodiment, the power management apparatus 100 may transmit the generated schedule information as described above to a predetermined function unit for allocating a task to the corresponding multi-core processor 10 . In this case, the functional unit may be an operating system (OS) for operating the multi-core processor 10 .

도 5에는 본 발명에 따라 생성된 스케줄 정보의 일례가 나타낸 도면이다.5 is a diagram illustrating an example of schedule information generated according to the present invention.

도 5에 도시된 바와 같이, 상기 전력 관리 장치(100)에 의해 생성된 스케줄 정보는 멀티 코어 프로세서(10)의 코어들을 식별하는 코어 식별 정보(S1), 각각의 코어에 대해 결정된 다음 주기에서의 유휴 예정 기간에 관한 정보(S2), 각각의 유휴 예정 기간에 대해 결정된 다음 주기에서의 개시 시점에 관한 정보(S3) 등을 포함할 수 있다.As shown in FIG. 5 , the schedule information generated by the power management device 100 includes core identification information S1 that identifies the cores of the multi-core processor 10 , and the next cycle determined for each core. It may include information S2 about the scheduled idle period, information S3 about the start time of the next cycle determined for each scheduled idle period, and the like.

도 6은 본 발명에 따라 코어에 제공되는 시간별 전력 레벨의 일례를 나타낸 도표이다.6 is a diagram illustrating an example of an hourly power level provided to a core in accordance with the present invention.

도 6에 도시된 바와 같이, 멀티 코어 프로세서(10)의 코어들 중 제1 코어가 t1 시점에, 작업을 수행하는 활성 상태(active state)에서 작업을 수행하지 않는 유휴 상태(idle state)로 전환되면, 제1 코어에 공급되는 전력이 감소 또는 차단되는 ti 시점까지 여러 준비 작업들이 수행된다. 즉, 제1 코어에 포함된 캐시(cache)의 플러싱(flushing), 유휴 코어의 상태 저장, 유휴 코어에 대응하는 PLL 회로의 전력다운 등이 수행될 수 있다.As shown in FIG. 6 , a first core among the cores of the multi-core processor 10 is switched from an active state performing a task to an idle state not performing a task at a time t1 . When this occurs, several preparatory tasks are performed until the ti point in time when the power supplied to the first core is reduced or cut off. That is, flushing of a cache included in the first core, saving the state of the idle core, powering down the PLL circuit corresponding to the idle core, etc. may be performed.

한편, 제1 코어가 다시 활성 상태로 전환되어 동작을 재개하기 위해서는 대응 PLL 회로의 웜업(warm-up) 시간과, 해당 코어의 종전 상태 회복을 위한 시간 등이 소요된다. 따라서, 상기 전력 관리 장치(100)는 상기 제1 코어의 해당 유휴 예정 기간이 종료되는 t1+ΔT1 시점보다 일정 시간 전인 to 시점에, 상기 제1 코어에 제공되는 전력을 복원할 수 있다. 그 결과, t1+ΔT1 시점 이후 제1 코어가 활성 상태로 재전환되면 최소한의 딜레이로 필요한 명령이나 작업을 처리할 수 있게 된다.Meanwhile, in order for the first core to return to the active state and resume operation, a warm-up time of the corresponding PLL circuit and time for recovery of the previous state of the corresponding core are required. Accordingly, the power management apparatus 100 may restore the power provided to the first core at a time to, which is a predetermined time before the time t1+ΔT1 when the corresponding idle period of the first core ends. As a result, when the first core is re-switched to the active state after the time t1+ΔT1, it is possible to process a necessary command or task with a minimum delay.

한편, 본 발명에 따른 실시예들은 컴퓨터와 이러한 컴퓨터를 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터를 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들을 포함할 수 있다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함될 수 있다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, EEPROM, 레지스터, 플래시 메모리, CD-ROM, 자기 테이프, 하드 디스크, 플로피디스크, 또는 광 데이터 기록장치 등이 포함될 수 있다. 또한, 이러한 기록매체는 다양한 네트워크로 연결된 컴퓨터 시스템들에 분산 배치되어 프로그램 코드들을 분산 방식으로 저장하거나 실행시킬 수 있다.On the other hand, the embodiments according to the present invention may be implemented as a computer and a computer program for driving such a computer. When the embodiments of the present invention are implemented as a computer program, the components of the present invention may include program segments that execute corresponding operations or tasks through a corresponding computer. These computer programs or program segments may be stored in various computer-readable recording media. The computer-readable recording medium may include any type of medium for recording data readable by a computer system. For example, the computer-readable recording medium may include ROM, RAM, EEPROM, registers, flash memory, CD-ROM, magnetic tape, hard disk, floppy disk, or an optical data recording device. In addition, such a recording medium may be distributed in various network-connected computer systems to store or execute program codes in a distributed manner.

상술한 바와 같이, 본 발명에 따르면, 멀티 코어 프로세서의 코어들에 대해 일정 주기마다 산출된 토털 유휴 기간을 이용하여 다음 주기에 발생 가능한 상기 코어들의 토털 유휴 기간을 추정하고, 이와 같이 추정된 토털 유휴 기간을 기반으로 스케줄링된 코어별 유휴 예정 기간에 따라 상기 코어들의 소비 전력과 동작을 신속히 제어함으로써, 멀티 코어 프로세서의 전력 효율과 동작 성능을 개선할 수 있다.As described above, according to the present invention, the total idle period of the cores that may occur in the next period is estimated using the total idle period calculated for each predetermined period for the cores of the multi-core processor, and the total idle period estimated in this way is estimated. By quickly controlling the power consumption and operation of the cores according to the scheduled idle period for each core scheduled based on the period, power efficiency and operation performance of the multi-core processor may be improved.

주기별로 산출된 토털 유휴 기간들 중 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하고, 이러한 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여 상기 다음 주기에 발생 가능한 코어들의 토털 유휴 기간을 추정함으로써, 유휴 기간 추정의 정확성과 신뢰성을 개선할 수 있다.Among the total idle periods calculated for each period, a greater weight is given to a total idle period of a period closer in time to the next period, and the total number of cores that can be generated in the next period using the total idle periods for each period to which this weight is assigned By estimating the idle period, the accuracy and reliability of the idle period estimation can be improved.

또한, 유휴 코어의 유휴 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원함으로써, 유휴 상태에서 활성 상태로 전환되는 코어의 동작을 신속히 재개할 수 있다.In addition, by reducing or blocking the power provided to the idle core during the idle period of the idle core, and restoring the power provided to the idle core at a power recovery time determined to be a predetermined time earlier than the end point of the idle period, A core that transitions from an idle state to an active state can quickly resume operation.

또한, 한 주기 동안 소비 가능한 코어별 전력량 상한치를 결정하고, 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 코어별 유휴 예정 기간을 스케줄링함으로써, 멀티 코어 프로세서에 포함된 코어들 간의 불균일한 열화를 방지할 수 있다.In addition, non-uniformity between cores included in the multi-core processor is determined by determining the upper limit of the amount of power consumed by each core during one cycle, and scheduling the idle period for each core so that the amount of power consumed by each core does not exceed the upper limit of the amount of power. deterioration can be prevented.

나아가, 본 발명에 따른 실시예들은, 당해 기술 분야는 물론 관련 기술 분야에서 본 명세서에 언급된 내용 이외의 다른 여러 기술적 과제들을 해결할 수 있음은 물론이다.Furthermore, it goes without saying that the embodiments according to the present invention can solve various technical problems other than those mentioned herein in the related technical field as well as the related technical field.

지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.Up to now, the present invention has been described with reference to specific examples. However, those skilled in the art will clearly understand that various modified embodiments can be implemented within the technical scope of the present invention. Therefore, the embodiments disclosed above should be considered in an illustrative rather than a restrictive point of view. That is, the scope of the true technical spirit of the present invention is indicated in the claims, and all differences within the scope of equivalents thereto should be construed as being included in the present invention.

100 : 전력 관리 장치 110 : 유휴 기간 산출부
120 : 유휴 기간 추정부 130 : 스케줄링부
132 : 제1 결정 모듈 134 : 제2 결정 모듈
136 : 제3 결정 모듈 138 : 스케줄 정보 생성 모듈
140 : 전력 제어부 142 : 주파수 제어 모듈
144 : 전압 제어 모듈
100: power management device 110: idle period calculator
120: idle period estimator 130: scheduling unit
132: first determining module 134: second determining module
136: third determination module 138: schedule information generation module
140: power control unit 142: frequency control module
144: voltage control module

Claims (11)

상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 멀티 코어 프로세서 전력 관리 장치로서,
일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 유휴 기간 산출부;
상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 유휴 기간 추정부;
추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄링부; 및
상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하는 전력 제어부를 포함하는 멀티 코어 프로세서 전력 관리 장치.
A multi-core processor power management device for managing power of a multi-core processor having a plurality of cores capable of mutually independent computational processing, comprising:
an idle period calculation unit calculating total idle periods for each period of the plurality of cores by summing the idle periods of the plurality of cores occurring in the corresponding period for each predetermined period;
an idle period estimator for estimating total idle periods of the plurality of cores that may occur in a next period using the total idle periods for each period;
The estimated total idle period is allocated to each of the plurality of cores to determine the start time of the scheduled idle period for each core and the scheduled idle period for each core during the next cycle, and the scheduled idle period for each core and the idle schedule for each core a scheduling unit generating schedule information including a start time of a period; and
When an idle core that enters an idle state according to the schedule information occurs among the plurality of cores, a power control unit that reduces or blocks power provided to the idle core during an idle predetermined period of the idle core included in the schedule information; A multi-core processor power management unit.
제1항에 있어서,
상기 유휴 기간 추정부는, 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하도록 구성된 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 장치.
According to claim 1,
The idle period estimator is configured to use the total idle periods for each period weighted in such a way that a greater weight is given to a total idle period of a period closer in time to the next period among the total idle periods for each period, Multi-core processor power management apparatus, characterized in that it is configured to estimate the total idle period of the plurality of cores that may occur in a next period.
제1항에 있어서,
상기 스케줄링부는,
상기 추정된 토털 유휴 기간을 이용하여 상기 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 제1 결정 모듈;
상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정하는 제2 결정 모듈;
상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 제3 결정 모듈; 및
상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄 정보 생성 모듈을 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 장치.
According to claim 1,
The scheduling unit,
A first determination module for calculating the average operating time for each core in the next cycle using the estimated total idle period, and determining the power consumption of each core corresponding to the calculated average operating time as the upper limit of the power amount of the core ;
a second determination module for allocating the estimated total idle period to the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and determining a scheduled idle period for each core;
a third determination module for determining a start time of the scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the next cycle is minimized; and
and a schedule information generation module for generating schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core.
제1항에 있어서,
상기 전력 제어부는, 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하도록 구성된 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 장치.
According to claim 1,
The power control unit reduces or cuts off power provided to the idle core during a scheduled idle period of the idle core, but provides the idle core at a power restoration time determined to be a predetermined time earlier than an end time of the corresponding idle time period. Multi-core processor power management device, characterized in that configured to restore the power.
제4항에 있어서,
상기 전력 제어부는, 상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하도록 구성된 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 장치.
5. The method of claim 4,
The power control unit, when at least one other idle core in which the idle core and the scheduled idle period overlap each other in time occurs among the plurality of cores, the power provided to the other idle core during the idle predetermined period of the other idle core A multi-core processor power management device, characterized in that it is reduced or cut off, and is configured to restore a power recovery time different from that of the idle core.
하드웨어와 소프트웨어가 결합된 전력 관리 장치를 이용하여, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 멀티 코어 프로세서 전력 관리 방법으로서,
상기 전력 관리 장치가 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 (a) 단계;
상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 (b) 단계;
상기 전력 관리 장치가 상기 (b) 단계에서 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 (c) 단계; 및
상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소키거나 차단하는 (d) 단계를 포함하는 멀티 코어 프로세서 전력 관리 방법.
A multi-core processor power management method for managing power of a multi-core processor having a plurality of cores capable of mutually independent arithmetic processing by using a power management device in which hardware and software are combined, the method comprising:
(a) calculating, by the power management apparatus, the total idle periods for each period of the plurality of cores by summing the idle periods of the plurality of cores occurring in the corresponding period at regular intervals;
(b) estimating, by the power management device, total idle periods of the plurality of cores that may occur in a next period using the total idle periods for each period;
The power management device allocates the total idle period estimated in step (b) to each of the plurality of cores to determine a scheduled idle period for each core and a start time of the respective scheduled idle period for the next cycle, and (c) generating schedule information including a scheduled idle period for each core and a start time of the scheduled idle period for each core; and
When an idle core that enters an idle state according to the schedule information occurs among the plurality of cores, the power management device reduces the power provided to the idle core during an idle predetermined period of the idle core included in the schedule information, or A multi-core processor power management method comprising the step of (d) shutting down.
제6항에 있어서,
상기 (b) 단계는, 상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 방법.
7. The method of claim 6,
In the step (b), the total idle period for each period in which the power management device is weighted in such a way that a greater weight is given to a total idle period of a period closer in time to the next period among the total idle periods for each period and estimating a total idle period of the plurality of cores that may occur in the next period by using the periods.
제6항에 있어서,
상기 (c) 단계는,
상기 전력 관리 장치가 상기 추정된 토털 유휴 기간을 이용하여 상기 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 단계;
상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 전력 관리 장치가 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정하는 단계;
상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 전력 관리 장치가 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 단계; 및
상기 전력 관리 장치가 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 방법.
7. The method of claim 6,
Step (c) is,
The power management device calculates the average operating time for each core in the next cycle using the estimated total idle period, and determines the power consumption of each core corresponding to the calculated average operating time as the upper limit of the power amount of the core. to do;
determining, by the power management device, the estimated total idle period to each of the plurality of cores so that the amount of power consumed by each core in the next cycle does not exceed the upper limit of the amount of power, and determining the scheduled idle period for each core ;
determining, by the power management device, a start time of a scheduled idle period for each core so that the number of cores simultaneously operating for each time zone of the next cycle is minimized; and
and generating, by the power management device, schedule information including the scheduled idle period for each core and a start time of the scheduled idle period for each core.
제6항에 있어서,
상기 (d) 단계는, 상기 전력 관리 장치가 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 방법.
7. The method of claim 6,
In the step (d), the power management device reduces or cuts power provided to the idle core during the idle scheduled period of the idle core, but restores power determined to a point in time prior to the end time of the idle scheduled period Multi-core processor power management method comprising the step of restoring the power provided to the idle core at a point in time.
제9항에 있어서,
상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시커나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하는 (e) 단계를 더 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 방법.
10. The method of claim 9,
When at least one other idle core in which the idle core and the scheduled idle period overlap in time from among the plurality of cores occurs, the power management device controls the power provided to the other idle core during the scheduled idle period of the other idle core. A multi-core processor power management method, characterized in that it further comprises the step of (e) reducing or blocking, but restoring the idle core at a power recovery time different from that of the idle core power recovery time.
제6항 내지 제10항 중 어느 한 항에 따른 방법을 컴퓨터를 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.A computer program for executing the method according to any one of claims 6 to 10 through a computer, and recorded on a computer-readable recording medium.
KR1020200144969A 2020-11-03 2020-11-03 Apparatus and method for managing power of multi-core processor KR102613979B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200144969A KR102613979B1 (en) 2020-11-03 2020-11-03 Apparatus and method for managing power of multi-core processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200144969A KR102613979B1 (en) 2020-11-03 2020-11-03 Apparatus and method for managing power of multi-core processor

Publications (2)

Publication Number Publication Date
KR20220059617A true KR20220059617A (en) 2022-05-10
KR102613979B1 KR102613979B1 (en) 2023-12-14

Family

ID=81591658

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200144969A KR102613979B1 (en) 2020-11-03 2020-11-03 Apparatus and method for managing power of multi-core processor

Country Status (1)

Country Link
KR (1) KR102613979B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101492953B1 (en) * 2012-05-14 2015-02-12 브로드콤 코포레이션 Leakage variation aware power management for multicore processors
KR20170042985A (en) * 2015-10-12 2017-04-20 삼성전자주식회사 Control circuit for estimating entry time of power save mode and device having the same
KR20190002248A (en) * 2017-06-29 2019-01-08 삼성전자주식회사 Processor, computing device comprising thereof and processor low power mode selecting method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101492953B1 (en) * 2012-05-14 2015-02-12 브로드콤 코포레이션 Leakage variation aware power management for multicore processors
KR20170042985A (en) * 2015-10-12 2017-04-20 삼성전자주식회사 Control circuit for estimating entry time of power save mode and device having the same
KR20190002248A (en) * 2017-06-29 2019-01-08 삼성전자주식회사 Processor, computing device comprising thereof and processor low power mode selecting method

Also Published As

Publication number Publication date
KR102613979B1 (en) 2023-12-14

Similar Documents

Publication Publication Date Title
US10732684B2 (en) Method and apparatus for managing global chip power on a multicore system on chip
US9074947B2 (en) Estimating temperature of a processor core in a low power state without thermal sensor information
TWI525547B (en) Mechanisms to avoid inefficient core hopping and provide hardware assisted low-power state selection
US7308591B2 (en) Power management of multi-processor servers
US20160378168A1 (en) Dynamic power management optimization
US20140181556A1 (en) Idle Phase Exit Prediction
US20090150696A1 (en) Transitioning a processor package to a low power state
JP4490298B2 (en) Processor power control apparatus and processor power control method
US20120137295A1 (en) Method for displaying cpu utilization in a multi-processing system
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US20140006666A1 (en) Task scheduling method and multi-core system
JPWO2009150815A1 (en) Multiprocessor system
JP2003271401A (en) Microprocessor having load monitoring function
US8892923B2 (en) Data processing apparatus and method for maintaining a time count value in normal and power saving modes of operation
US20130125131A1 (en) Multi-core processor system, thread control method, and computer product
CN113841119B (en) Control device and distributed processing method
Reghenzani et al. A multi-level dpm approach for real-time dag tasks in heterogeneous processors
KR102613979B1 (en) Apparatus and method for managing power of multi-core processor
CN116088662A (en) Power consumption management method, multi-processing unit system and power consumption management module
JPH09265459A (en) Method for controlling data processor
JP2016076249A (en) Image processing device, control method thereof, and program
JP4798445B2 (en) Power saving control method, image forming apparatus, and program
US20240004448A1 (en) Platform efficiency tracker
JP7124592B2 (en) Job execution system and job execution method
KR20230007774A (en) Memory management system and method for edge type artificial intelligence SoC

Legal Events

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