KR102613979B1 - 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
KR102613979B1
KR102613979B1 KR1020200144969A KR20200144969A KR102613979B1 KR 102613979 B1 KR102613979 B1 KR 102613979B1 KR 1020200144969 A KR1020200144969 A KR 1020200144969A KR 20200144969 A KR20200144969 A KR 20200144969A KR 102613979 B1 KR102613979 B1 KR 102613979B1
Authority
KR
South Korea
Prior art keywords
core
idle
cores
idle period
power
Prior art date
Application number
KR1020200144969A
Other languages
Korean (ko)
Other versions
KR20220059617A (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

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

Landscapes

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

Abstract

멀티 코어 프로세서 전력 관리 장치 및 방법이 개시된다.
본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 장치는, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 장치로서, 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 유휴 기간 산출부; 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 유휴 기간 추정부; 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄링부; 및 상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하는 전력 제어부를 포함한다.
A multi-core processor power management apparatus and method are disclosed.
A multi-core processor power management device according to an embodiment of the present invention is a device that manages the power of a multi-core processor having a plurality of cores capable of independent operation processing, and the plurality of cores generated in the cycle at a certain cycle an idle period calculator that calculates total idle periods for each cycle of the plurality of cores by adding up the idle periods; an idle period estimation unit that estimates a total idle period of the plurality of cores that can occur in the next cycle using the total idle periods for each cycle; The estimated total idle period is allocated to each of the plurality of cores to determine the start point 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 scheduled idle period for each core are determined. a scheduling unit that generates schedule information including a start point of a period; and a power control unit that, when an idle core enters an idle state according to the schedule information among the plurality of cores, reduces or blocks power provided to the idle core during the scheduled idle period of the idle core included in the schedule information. Includes.

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 specifically, to a multi-core processor power management apparatus and method for efficiently managing the power of a multi-core processor having a plurality of cores capable of mutually independent operation processing. It's about.

멀티 코어 프로세서(multi-core processor)는 상호 독립적으로 연산 처리를 수행하는 복수의 코어를 가진 프로세서로서, 싱글 코어 프로세서에 비해 상대적으로 낮은 클럭 주파수로 동작되는 복수의 코어를 통해 작업을 분산 처리하는 프로세서이다.A multi-core processor is a processor with multiple cores that perform calculation processing independently of each other. A processor that distributes work through multiple cores that operate at a relatively low clock frequency compared to 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 that judgment. , it is not possible to quickly control the power consumption of cores that transition from the active state to the idle state, and the operation of the cores that transition from the idle state to the active state cannot be quickly resumed, and the cores' There is a problem that uneven 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 that alternately switch between active and idle states, and to improve the power efficiency and operation performance of the cores. To provide a multi-core processor power management device and method that prevents uneven degradation.

본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 장치는, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 장치로서, 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 유휴 기간 산출부; 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 유휴 기간 추정부; 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄링부; 및 상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하는 전력 제어부를 포함한다.A multi-core processor power management device according to an embodiment of the present invention is a device that manages the power of a multi-core processor having a plurality of cores capable of independent operation processing, and the plurality of cores generated in the cycle at a certain cycle an idle period calculator that calculates total idle periods for each cycle of the plurality of cores by adding up the idle periods; an idle period estimation unit that estimates a total idle period of the plurality of cores that can occur in the next cycle using the total idle periods for each cycle; The estimated total idle period is allocated to each of the plurality of cores to determine the start point 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 scheduled idle period for each core are determined. a scheduling unit that generates schedule information including a start point of a period; and a power control unit that, when an idle core enters an idle state according to the schedule information among the plurality of cores, reduces or blocks power provided to the idle core during the scheduled idle period of the idle core included in the schedule information. Includes.

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

일 실시예에 있어서, 상기 스케줄링부는, 상기 추정된 토털 유휴 기간을 이용하여 상기 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 제1 결정 모듈; 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정하는 제2 결정 모듈; 상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 제3 결정 모듈; 및 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄 정보 생성 모듈을 포함한다.In one embodiment, the scheduling unit calculates the average operation 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 operation time to the corresponding core. A first decision module that determines the upper limit of the power amount of; a second determination module that determines a scheduled idle period for each core by allocating 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 power limit; a third decision module that determines a starting point of the scheduled idle period for each core to minimize the number of cores operating simultaneously for each time slot of the next cycle; and a schedule information generation module that generates schedule information including the scheduled idle period for each core and a start point 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 the power restoration point is determined to be a certain time before the end of the scheduled idle period. and is configured to restore power provided to the idle core.

일 실시예에 있어서, 상기 전력 제어부는, 상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하도록 구성된다.In one embodiment, when at least one other idle core occurs among the plurality of cores and whose scheduled idle period overlaps with the idle core in time, the power control unit adjusts the power provided to the other idle core to the other idle core. It is configured to reduce or block the power during the scheduled idle period of the core, but restore it at a power restoration time that is different from the power restoration time 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 of managing the power of a multi-core processor with a plurality of cores capable of independent operation processing using a power management device combining hardware and software. Step (a) in which the power management device calculates total idle periods for each cycle of the plurality of cores by adding up the idle periods of the plurality of cores that occur in the corresponding cycle at a certain period; Step (b) of the power management device estimating a total idle period of the plurality of cores that can occur in the next cycle using the total idle periods for each cycle; 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 during the next cycle and a start point of the scheduled idle period for each core, Step (c) of generating schedule information including a scheduled idle period for each core and a start point of the scheduled idle period for each core; And when an idle core enters an idle state according to the schedule information among the plurality of cores, the power management device reduces the power provided to the idle core during the scheduled idle period of the idle core included in the schedule information. It includes step (d) of blocking or blocking.

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

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

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

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

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

본 발명에 따르면, 멀티 코어 프로세서의 코어들에 대해 일정 주기마다 산출된 토털 유휴 기간을 이용하여 다음 주기에 발생 가능한 상기 코어들의 토털 유휴 기간을 추정하고, 이와 같이 추정된 토털 유휴 기간을 기반으로 스케줄링된 코어별 유휴 예정 기간에 따라 상기 코어들의 소비 전력과 동작을 신속히 제어함으로써, 멀티 코어 프로세서의 전력 효율과 동작 성능을 개선할 수 있다.According to the present invention, the total idle period of the cores that can occur in the next cycle is estimated using the total idle period calculated at regular intervals for the cores of a multi-core processor, 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 operating performance of the multi-core processor can be improved.

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

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

또한, 한 주기 동안 소비 가능한 코어별 전력량 상한치를 결정하고, 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 코어별 유휴 예정 기간을 스케줄링함으로써, 멀티 코어 프로세서에 포함된 코어들 간의 불균일한 열화를 방지할 수 있다.In addition, 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, unevenness among the cores included in the multi-core processor is achieved. Deterioration can be prevented.

나아가, 본 발명이 속하는 기술 분야의 통상의 지식을 가진 자라면, 본 발명에 따른 다양한 실시예들이 상기 언급되지 않은 여러 기술적 과제들을 해결할 수 있음을 이하의 설명으로부터 자명하게 이해할 수 있을 것이다.Furthermore, those skilled in the art to which the present invention pertains will be able to 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.
Figure 2 is a block diagram showing a multi-core processor power management device according to an embodiment of the present invention.
Figure 3 is a flowchart showing a power control process of a multi-core processor power management method according to an embodiment of the present invention.
Figure 4 is a flowchart showing a schedule information generation process of a multi-core processor power management method according to an embodiment of the present invention.
Figure 5 is a diagram showing an example of schedule information generated according to the present invention.
Figure 6 is a diagram showing an example of hourly power levels provided to the core according to the present invention.

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

도 1에는 본 발명이 적용되는 멀티 코어 프로세서(10)의 일례를 나타낸 도면이다.Figure 1 is a diagram 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)는 일종의 온칩 시스템으로 구현될 수 있다.As shown in FIG. 1, the multi-core processor 10 to which the present invention is applied includes a plurality of cores 11 that independently perform calculation processing, a clock generator 12, a voltage regulator 13, and an input/output interface ( 14), a north bridge 15, a memory controller 16, etc. This multi-core processor 10 may be connected to an external memory 20. This multi-core processor 10 may be implemented as a type of on-chip system.

멀티 코어 프로세서(10)에 포함되는 코어(11)의 개수는 실시예에 따라 다양하게 변경될 수 있다. 멀티 코어 프로세서(10)에 포함된 코어들은 전부 동일하게 구성되거나, 1 이상의 코어가 다른 코어들과 상이하게 구성될 수 있다. 각각의 코어(11)는 적어도 하나의 실행 유닛, 캐시 메모리, 스케줄러, 분기 예측 회로 등을 포함할 수 있다.The number of cores 11 included in the multi-core processor 10 may vary depending on the embodiment. 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, cache memory, scheduler, branch prediction circuit, etc.

이러한 코어(11)는 노스 브리지(15)에 연결될 수 있다. 노스 브리지(15)는 메모리(20)나 다양한 주변 장치에 대한 인터페이스를 포함하여 각각의 코어(11)에 인터페이스 기능을 제공하도록 구성될 수 있다. 예컨대, 각각의 코어(11)는 메모리(20)에 액세스하기 위한 리퀘스트를 전송할 수 있다. 이러한 리퀘스트는 읽기 리퀘스트나 쓰기 리퀘스트를 포함할 수 있으며, 노스 브리지(15)를 통해 전송될 수 있다. 또한, 메모리(20)에 액세스하기 위한 리퀘스트는 메모리 컨트롤러(16)를 통해 라우팅될 수 있다.This core 11 may be connected to the north bridge 15. North bridge 15 may be configured to provide interface functions to each core 11, including an interface to memory 20 or various peripheral devices. For example, each core 11 may transmit a request to access the memory 20. These requests may include read requests or write requests and may be transmitted through the north bridge 15. Additionally, 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 clock signals corresponding to each of the cores. That is, the clock signals provided to each core 11 can be configured independently of each other. As will be described again below, the clock generator 12 may individually change or block the frequencies of clock signals provided for each core according to the control of the power management device 100 according to the present invention. For example, if the power management device 100 changes the digital signal that controls 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 in the digital signal. there is. The frequency of the clock signal provided to the core 11 may be increased or decreased depending on the performance required for operation of the core 11.

전압 레귤레이터(13)는 각각의 코어(11)에 개별적으로 공급 전압을 제공하거나, 제공하고 있는 공급 전압을 변경할 수 있다. 아래에서 다시 설명하겠지만, 전압 레귤레이터(13)는 본 발명에 따른 전력 관리 장치(100)의 제어에 따라, 코어별로 제공되는 공급 전압을 각각 개별적으로 변경하거나 차단할 수 있다. 예컨대, 전력 관리 장치(100)가 전압 레귤레이터(13)를 제어하는 디지털 신호를 변경하면, 전압 레귤레이터(13)는 디지털 신호의 변경에 대응하여 해당 코어에 제공되는 전압을 변경하거나 차단할 수 있다.The voltage regulator 13 may individually provide a supply voltage to each core 11 or 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 for each core according to 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 that controls the voltage regulator 13, the voltage regulator 13 may change or block the voltage provided to the corresponding core in response to the change in 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 a 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, PCI-Extended (PCI-X) bus, PCI Express (PCIE) bus, Gigabit Ethernet (GBE) bus, Universal Serial Bus (USB), etc. can be connected to the input/output interface 14. there is. Various peripheral devices can be connected to this peripheral bus. These peripheral devices may optionally include sensors, keyboards, mice, printers, scanners, external storage devices, network interface cards, etc. At least some of the peripheral devices connected to the input/output interface 14 through a peripheral device bus may transmit a memory access request using DMA (Direct Memory Access). These requests may be delivered to the north bridge 15 through the input/output interface 14 and routed through the memory controller 16.

한편, 본 발명에 따른 전력 관리 장치(100)는 이러한 멀티 코어 프로세서(10)에서 복수의 코어(11)에 의해 소비되는 전력을 관리하도록 구성된다. 이를 위해, 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)의 노스 브리지(15)에 마련될 수 있다. 이러한 전력 관리 장치(100)는 일종의 컴퓨팅 장치로서 프로세서, 메모리 등과 같은 하드웨어와, 하드웨어를 통해 실행되는 소프트웨어의 결합으로 구성될 수 있다. 실시예에 따라, 상기 전력 관리 장치(100)는 멀티 코어 프로세서(10)의 외부에 마련되어 멀티 코어 프로세서(10)와 연동하도록 구성될 수도 있다.Meanwhile, the power management device 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 device 100 may be provided in the north bridge 15 of the multi-core processor 10. This power management device 100 is a type of computing device and may be composed of a combination of hardware such as a processor, memory, etc., and software executed through the hardware. Depending on the embodiment, the power management device 100 may be provided outside the multi-core processor 10 and configured to interwork with the multi-core processor 10.

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

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

상기 유휴 기간 산출부(110)는 일정 주기마다 해당 주기에 발생한 복수의 코어(11)의 유휴 기간들을 모두 합산하여, 상기 복수의 코어(11)의 주기별 토털 유휴 기간들을 산출하도록 구성된다. 예컨대, 각각의 주기에 대응하는 복수의 코어(11)의 토털 유휴 기간 Pt은 아래 수학식 1과 같이 산출될 수 있다.The idle period calculation unit 110 is configured to calculate the total idle periods for each cycle of the plurality of cores 11 by adding up all the idle periods of the plurality of cores 11 that occurred in the corresponding cycle at each certain cycle. For example, the total idle period Pt of the plurality of cores 11 corresponding to each cycle can be calculated as shown 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 a plurality of cores occurring in the Nth cycle, and Pn represents the idle period of core n occurring in the Nth cycle.

이 경우, 상기 유휴 기간 산출부(110)는 복수의 코어(11)에 각각 대응하는 복수의 타이머(timer)를 포함할 수 있다. 각각의 타이머는 대응 코어의 동작이 감지되면 정지되고, 대응 코어의 동작이 정지되면 동작 정지 후 경과 시간을 측정하여 대응 코어의 유휴 기간을 누적적으로 측정할 수 있다. 새로운 주기가 도래하면, 복수의 타이머는 리셋될 수 있다.In this case, the idle period calculator 110 may include a plurality of timers, each corresponding to a 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 time elapsed after the operation has stopped. When a new period arrives, the plurality of timers may be reset.

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

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

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

상기 스케줄링부(130)는 상기와 같이 추정된 토털 유휴 기간을 상기 복수의 코어(11)에 각각 할당하여 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하도록 구성된다.The scheduling unit 130 allocates the estimated total idle period as described above to each of the plurality of cores 11 to determine the scheduled idle period for each core for the next cycle and the start point of the scheduled idle period for each core, It is configured to generate schedule information including the scheduled idle period for each core and a start point 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 decision module 132, a second decision module 134, a third decision module 136, and a schedule information generation module 138.

상기 제1 결정 모듈(132)은 상기 추정된 토털 유휴 기간을 이용하여 다음 주기에서의 코어별 평균 동작 시간을 산출하고, 산출된 평균 동작 시간에 대응하는 각각의 코어의 소비 전력량을 해당 코어의 전력량 상한치로 결정할 수 있다. 예컨대, 제1 결정 모듈(132)은 한 주기에 해당하는 시간에서 상기 추정된 토털 유휴 기간에 해당하는 시간을 감산하여 토털 동작 시간을 산출하고, 산출된 토털 동작 시간을 멀티 코어 프로세서(10)의 코어 개수로 나누어 코어별 평균 동작 시간을 산출할 수 있다. 그 다음, 제1 결정 모듈(132)은 각각의 코어의 시간당 소비 전력에 상기 평균 동작 시간을 곱하여 상기 소비 전력량을 산출할 수 있다.The first determination module 132 calculates the average operation 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 operation time to the power consumption of the corresponding core. It can be determined by the upper limit. 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 uses the calculated total operation time to calculate the total operation time of the multi-core processor 10. The average operation time for each core can be calculated 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 hour of each core by the average operation 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 power amount, and the scheduled idle period 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 determination module 136 may determine the start time of the scheduled idle period for each core so that the number of cores operating simultaneously for each time slot of the next cycle is minimized. For example, the third decision module 136 determines the starting point 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 or amount of operation given to the multi-core processor 10. You can decide.

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

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

상기 전력 제어부(140)는 다음 주기가 도래하여 상기 복수의 코어(11) 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 유휴 코어에 제공되는 전력을 감소시키거나 차단하도록 구성된다.When the next cycle arrives and an idle core among the plurality of cores 11 enters an idle state according to the schedule information, the power control unit 140 idles the idle core during the scheduled idle period included in the schedule information. It is configured to reduce or block the 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, which controls the clock generator 12 to individually change or block the frequencies of clock signals provided for each core, and the voltage regulator 13. Thus, it may include a voltage control module 144 that individually changes or blocks the supply voltage provided for each core.

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

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

도 3에는 본 발명의 일 실시예에 따른 멀티 코어 프로세서 전력 관리 방법의 전력 제어 프로세스가 흐름도로 도시되어 있다. 도 3을 참조하여 상기 전력 관리 장치(100)의 세부 동작들을 시계열적으로 설명한다.Figure 3 shows a flowchart of 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 device 100 will be described in chronological order with reference to FIG. 3 .

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

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

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

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

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

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

그 다음, 상기 전력 관리 장치(100)는 제N+1차 주기가 도래하여 상기 복수의 코어(11) 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 유휴 코어에 제공되는 전력을 감소시키거나 차단할 수 있다(S350). 이 경우, 상기 전력 관리 장치(100)는 클럭 발생기(12)를 제어하여 유휴 코어에 제공되는 클럭 신호들의 주파수를 제한 또는 차단하거나, 전압 레귤레이터(13)를 제어하여 유휴 코어에 제공되는 공급 전압을 제한 또는 차단하거나, 클럭 신호의 주파수와 공급 전압을 모두 제한 또는 차단할 수 있다.Next, when the N+1st cycle arrives and an idle core among the plurality of cores 11 enters an idle state according to the schedule information, the power management device 100 controls the core number included in the schedule information. The power provided to the idle core may be reduced or blocked during the scheduled idle 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 increase the supply voltage provided to the idle core. Both the frequency of the clock signal and the supply voltage can be limited or blocked.

일 실시예에 있어서, 상기 전력 관리 장치(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 determines the time point to be a certain amount of time before the end of the scheduled idle period. At the time of power restoration, the power provided to the idle core may be restored. This is to allow idle cores to complete preparations for resuming operation before switching to the active state and to begin work immediately the moment the work is requested.

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

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

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

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

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

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

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

그 다음, 상기 전력 관리 장치(100)는 상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 코어별 유휴 예정 기간을 결정할 수 있다(S420). 이 경우, 코어별 유휴 예정 기간은 멀티 코어 프로세서(10)에 주어진 작업의 종류나 연산량 등을 고려하여 결정될 수 있다.Next, the power management device 100 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 power amount, and idles each core. The scheduled period can 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 device 100 may determine the start point of the scheduled idle period for each core so that the number of cores operating simultaneously for each time slot of the N+1st cycle is minimized (S430). For example, the power management device 100 sets the starting point 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 or amount of operation given to the multi-core processor 10. You can decide.

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

도 5에는 본 발명에 따라 생성된 스케줄 정보의 일례가 나타낸 도면이다.Figure 5 is a diagram showing 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 schedule information in the next cycle determined for each core. It may include information about the scheduled idle period (S2), information about the starting point in the next cycle determined for each scheduled idle period (S3), etc.

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

도 6에 도시된 바와 같이, 멀티 코어 프로세서(10)의 코어들 중 제1 코어가 t1 시점에, 작업을 수행하는 활성 상태(active state)에서 작업을 수행하지 않는 유휴 상태(idle state)로 전환되면, 제1 코어에 공급되는 전력이 감소 또는 차단되는 ti 시점까지 여러 준비 작업들이 수행된다. 즉, 제1 코어에 포함된 캐시(cache)의 플러싱(flushing), 유휴 코어의 상태 저장, 유휴 코어에 대응하는 PLL 회로의 전력다운 등이 수행될 수 있다.As shown in FIG. 6, the first core among the cores of the multi-core processor 10 switches from an active state in which work is performed to an idle state in which no work is performed at time t1. When this happens, several preparatory tasks are performed until the point ti when the power supplied to the first core is reduced or cut off. That is, flushing of the 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, it takes time to warm up the corresponding PLL circuit and time to restore the previous state of the corresponding core. Accordingly, the power management device 100 may restore the power provided to the first core at a time to, which is a certain time before the time t1+ΔT1 when the scheduled idle period of the first core ends. As a result, when the first core is reverted to the active state after time t1+ΔT1, necessary commands or tasks can be processed with minimal delay.

한편, 본 발명에 따른 실시예들은 컴퓨터와 이러한 컴퓨터를 구동하는 컴퓨터 프로그램으로 구현될 수 있다. 본 발명의 실시예들이 컴퓨터 프로그램으로 구현되는 경우, 본 발명의 구성요소들은 해당 컴퓨터를 통해 해당 동작이나 작업을 실행하는 프로그램 세그먼트들을 포함할 수 있다. 이러한 컴퓨터 프로그램 내지 프로그램 세그먼트들은 컴퓨터로 판독 가능한 다양한 기록매체에 저장될 수 있다. 컴퓨터로 판독 가능한 기록매체에는 컴퓨터 시스템이 읽어들일 수 있는 데이터를 기록하는 모든 종류의 매체가 포함될 수 있다. 예컨대, 컴퓨터로 판독 가능한 기록매체에는 ROM, RAM, EEPROM, 레지스터, 플래시 메모리, CD-ROM, 자기 테이프, 하드 디스크, 플로피디스크, 또는 광 데이터 기록장치 등이 포함될 수 있다. 또한, 이러한 기록매체는 다양한 네트워크로 연결된 컴퓨터 시스템들에 분산 배치되어 프로그램 코드들을 분산 방식으로 저장하거나 실행시킬 수 있다.Meanwhile, embodiments according to the present invention may be implemented with a computer and a computer program that runs the computer. When embodiments of the present invention are implemented as a computer program, the components of the present invention may include program segments that execute the corresponding operation or task through the computer. These computer programs or program segments may be stored in various computer-readable recording media. Computer-readable recording media may include all types of media that record data that can be read by a computer system. For example, computer-readable recording media may include ROM, RAM, EEPROM, registers, flash memory, CD-ROM, magnetic tape, hard disk, floppy disk, or optical data recording device. Additionally, these recording media can be distributed across computer systems connected to various networks 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 of the multi-core processor calculated at each certain cycle is used to estimate the total idle period of the cores that can occur in the next cycle, 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, the power efficiency and operation performance of the multi-core processor can be improved.

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

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

또한, 한 주기 동안 소비 가능한 코어별 전력량 상한치를 결정하고, 각각의 코어에 의해 소비되는 전력량이 상기 전력량 상한치를 초과하지 않도록 코어별 유휴 예정 기간을 스케줄링함으로써, 멀티 코어 프로세서에 포함된 코어들 간의 불균일한 열화를 방지할 수 있다.In addition, 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, unevenness among the cores included in the multi-core processor is achieved. Deterioration can be prevented.

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

지금까지 본 발명에 대해 구체적인 실시예들을 참고하여 설명하였다. 그러나 당업자라면 본 발명의 기술적 범위에서 다양한 변형 실시예들이 구현될 수 있음을 명확하게 이해할 수 있을 것이다. 그러므로 앞서 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 할 것이다. 즉, 본 발명의 진정한 기술적 사상의 범위는 청구범위에 나타나 있으며, 그와 균등범위 내에 있는 모든 차이점은 본 발명에 포함되는 것으로 해석되어야 할 것이다.So far, the present invention has been described with reference to specific embodiments. 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 previously disclosed embodiments should be considered from an explanatory perspective rather than a limiting perspective. In other words, the scope of the true technical idea of the present invention is shown in the claims, and all differences within the scope of equivalents 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 calculation unit
120: Idle period estimation unit 130: Scheduling unit
132: first decision module 134: second decision module
136: Third decision module 138: Schedule information creation module
140: power control unit 142: frequency control module
144: Voltage control module

Claims (11)

상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 멀티 코어 프로세서 전력 관리 장치로서,
일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 유휴 기간 산출부;
상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 유휴 기간 추정부;
상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 스케줄링부; 및
상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하는 전력 제어부를 포함하고,
상기 스케줄링부는,
한 주기에 해당하는 시간에서 상기 추정된 토털 유휴 기간에 해당하는 시간을 감산하여 토털 동작 시간을 산출하고, 상기 산출된 토털 동작 시간을 상기 복수의 코어 개수로 나누어 코어별 평균 동작 시간을 산출하고,
각각의 코어의 시간당 소비 전력에 상기 코어별 평균 동작 시간을 곱하여 소비 전력량을 산출하고,
상기 산출된 코어별 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 제1 결정모듈;
상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 코어별 유휴 예정 기간을 결정하되, 상기 코어별 유휴 예정 기간은 상기 복수의 멀티 코어에 주어진 작업의 종류 및 연산량을 고려하여 결정하는 제2 결정모듈; 및
상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되고, 상기 복수의 멀티 코어에 주어진 작업의 종류 및 연산량이 허용하는 한도 내에서 상기 코어별 유휴 예정 기간이 시간상 서로 겹치지 않도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 제3 결정모듈을 포함하고,
상기 전력 제어부는, 상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시키거나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하도록 구성되고,
상기 유휴 기간 추정부는, 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하도록 구성되는 멀티 코어 프로세서 전력 관리 장치.
A multi-core processor power management device that manages the power of a multi-core processor with a plurality of cores capable of processing independent operations, comprising:
an idle period calculation unit for calculating total idle periods for each cycle of the plurality of cores by adding up the idle periods of the plurality of cores occurring in the corresponding cycle at each certain period;
an idle period estimation unit that estimates a total idle period of the plurality of cores that can occur in the next cycle using the total idle periods for each cycle;
The estimated total idle period is allocated to each of the plurality of cores to determine the start point 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 scheduled period for each core are determined. a scheduling unit that generates schedule information including the start time of the scheduled period; and
When an idle core among the plurality of cores enters an idle state according to the schedule information, a power control unit that reduces or blocks power provided to the idle core during the scheduled idle period of the idle core included in the schedule information. Contains,
The scheduling unit,
The total operation time is calculated by subtracting the time corresponding to the estimated total idle period from the time corresponding to one cycle, and the calculated total operation time is divided by the number of cores to calculate the average operation time for each core,
The amount of power consumption is calculated by multiplying the power consumption per hour of each core by the average operation time for each core,
a first decision module that determines the calculated power consumption by core as an upper limit of power for the corresponding core;
The estimated total idle period is allocated to each of the plurality of cores to determine a scheduled idle period for each core so that the amount of power consumed by each core in the next cycle does not exceed the upper power limit. a second decision module that makes a decision considering the type and amount of computation given to the plurality of multi-cores; and
The number of cores operating simultaneously for each time slot of the next cycle is minimized, and the idle period for each core is scheduled to be idle so that the scheduled idle period for each core does not overlap in time within the limit allowed by the type and amount of operation given to the plurality of multi-cores. Comprising a third decision module that determines the start time of the period,
If at least one other idle core occurs among the plurality of cores and whose scheduled idle period overlaps with the idle core in time, the power control unit adjusts the power provided to the other idle core during the scheduled idle period of the other idle core. Reduce or block, but configured to restore at a power restoration time that is different from the power restoration time of the idle core,
The idle period estimation unit uses the total idle periods for each cycle, each of which is weighted in such a way that a greater weight is given to the total idle period in a cycle that is closer in time to the next cycle among the total idle periods for each cycle. A multi-core processor power management device configured to estimate a total idle period of the plurality of cores that may occur in the next cycle.
삭제delete 삭제delete 제1항에 있어서,
상기 전력 제어부는, 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하도록 구성된 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 장치.
According to paragraph 1,
The power control unit reduces or blocks the power provided to the idle core during the scheduled idle period of the idle core, but provides the power to the idle core at a power restoration time determined to be a certain time before the end of the scheduled idle period. A multi-core processor power management device configured to restore power.
삭제delete 하드웨어와 소프트웨어가 결합된 전력 관리 장치를 이용하여, 상호 독립적인 연산 처리가 가능한 복수의 코어를 가진 멀티 코어 프로세서의 전력을 관리하는 멀티 코어 프로세서 전력 관리 방법으로서,
상기 전력 관리 장치가 일정 주기마다 해당 주기에 발생한 상기 복수의 코어의 유휴 기간들을 합산하여, 상기 복수의 코어의 주기별 토털 유휴 기간들을 산출하는 (a) 단계;
상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들을 이용하여 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 (b) 단계;
상기 전력 관리 장치가 상기 (b) 단계에서 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 상기 다음 주기 동안의 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 결정하고, 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 (c) 단계; 및
상기 복수의 코어 중에서 상기 스케줄 정보에 따라 유휴 상태로 들어간 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 스케줄 정보에 포함된 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소키거나 차단하는 (d) 단계를 포함하고,
상기 (c) 단계는,
한 주기에 해당하는 시간에서 상기 추정된 토털 유휴 기간에 해당하는 시간을 감산하여 토털 동작 시간을 산출하고, 상기 산출된 토털 동작 시간을 상기 복수의 코어 개수로 나누어 코어별 평균 동작 시간을 산출하고,
각각의 코어의 시간당 소비 전력에 상기 코어별 평균 동작 시간을 곱하여 소비 전력량을 산출하고, 상기 산출된 코어별 소비 전력량을 해당 코어의 전력량 상한치로 결정하는 단계;
상기 다음 주기에서 각각의 코어에 의해 소비되는 전력량이 전력량 상한치를 초과하지 않도록 상기 추정된 토털 유휴 기간을 상기 복수의 코어에 각각 할당하여 코어별 유휴 예정 기간을 결정하되, 상기 코어별 유휴 예정 기간은 상기 복수의 멀티 코어에 주어진 작업의 종류 및 연산량을 고려하여 결정하는 단계;
상기 다음 주기의 시간대별로 동시에 동작하는 코어의 개수가 최소화되고, 상기 복수의 멀티 코어에 주어진 작업의 종류 및 연산량이 허용하는 한도 내에서 상기 코어별 유휴 예정 기간이 시간상 서로 겹치지 않도록 상기 코어별 유휴 예정 기간의 개시 시점을 결정하는 단계; 및
상기 전력 관리 장치가 상기 코어별 유휴 예정 기간과 상기 코어별 유휴 예정 기간의 개시 시점을 포함한 스케줄 정보를 생성하는 단계를 포함하고,
상기 (b) 단계는, 상기 전력 관리 장치가 상기 주기별 토털 유휴 기간들 중 상기 다음 주기와 시간상 더 가까운 주기의 토털 유휴 기간에 더 큰 가중치를 부여하는 방식으로 각각 가중치가 부여된 주기별 토털 유휴 기간들을 이용하여, 상기 다음 주기에 발생 가능한 상기 복수의 코어의 토털 유휴 기간을 추정하는 단계이고,
상기 복수의 코어 중에서 상기 유휴 코어와 유휴 예정 기간이 시간상 상호 중첩되는 적어도 하나의 다른 유휴 코어가 발생하면, 상기 전력 관리 장치가 상기 다른 유휴 코어에 제공되는 전력을 상기 다른 유휴 코어의 유휴 예정 기간 동안 감소시커나 차단하되, 상기 유휴 코어의 전력 복원 시점과 상이한 전력 복원 시점에 복원하는 (e) 단계를 더 포함하는 멀티 코어 프로세서 전력 관리 방법.
A multi-core processor power management method for managing the power of a multi-core processor with a plurality of cores capable of independent operation processing using a power management device combining hardware and software, comprising:
Step (a) in which the power management device calculates total idle periods for each cycle of the plurality of cores by adding up the idle periods of the plurality of cores that occur in the corresponding cycle at a certain period;
Step (b) of the power management device estimating a total idle period of the plurality of cores that can occur in the next cycle using the total idle periods for each cycle;
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 during the next cycle and a start point of the scheduled idle period for each core, Step (c) of generating schedule information including a scheduled idle period for each core and a start point of the scheduled idle period for each core; and
When an idle core among the plurality of cores enters an idle state according to the schedule information, the power management device reduces the power provided to the idle core during the scheduled idle period of the idle core included in the schedule information. comprising step (d) of blocking,
In step (c),
The total operation time is calculated by subtracting the time corresponding to the estimated total idle period from the time corresponding to one cycle, and the calculated total operation time is divided by the number of cores to calculate the average operation time for each core,
Calculating the amount of power consumption by multiplying the power consumption per hour of each core by the average operation time for each core, and determining the calculated amount of power consumption for each core as the upper limit of the power amount for the core;
The estimated total idle period is allocated to each of the plurality of cores to determine a scheduled idle period for each core so that the amount of power consumed by each core in the next cycle does not exceed the upper power limit. determining the type and amount of computation given to the plurality of multi-cores;
The number of cores operating simultaneously for each time slot of the next cycle is minimized, and the idle period for each core is scheduled to be idle so that the scheduled idle period for each core does not overlap in time within the limit allowed by the type and amount of operation given to the plurality of multi-cores. determining the start point of the period; and
A step of the power management device generating schedule information including the scheduled idle period for each core and a start point of the scheduled idle period for each core,
In step (b), the power management device assigns a greater weight to the total idle period of a cycle that is closer in time to the next cycle among the total idle periods of each cycle. A step of estimating a total idle period of the plurality of cores that can occur in the next cycle using the periods,
When at least one other idle core occurs among the plurality of cores whose scheduled idle period overlaps with the idle core in time, the power management device adjusts 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 further comprising step (e) of reducing or blocking power, but restoring it at a power restoration time different from that of the idle core.
삭제delete 삭제delete 제6항에 있어서,
상기 (d) 단계는, 상기 전력 관리 장치가 상기 유휴 코어의 유휴 예정 기간 동안 상기 유휴 코어에 제공되는 전력을 감소시키거나 차단하되, 해당 유휴 예정 기간의 종료 시점보다 일정 시간 앞선 시점으로 결정된 전력 복원 시점에 상기 유휴 코어에 제공되는 전력을 복원하는 단계를 포함하는 것을 특징으로 하는 멀티 코어 프로세서 전력 관리 방법.
According to clause 6,
In step (d), the power management device reduces or blocks the power provided to the idle core during the scheduled idle period of the idle core, but restores power determined to be a certain time before the end of the scheduled idle period. A multi-core processor power management method comprising restoring power provided to the idle core at a certain point in time.
삭제delete 제6항 또는 제9항 중 어느 한 항에 따른 방법을 컴퓨터를 통해 실행하는 컴퓨터 프로그램으로서 컴퓨터로 판독 가능한 기록매체에 기록된 컴퓨터 프로그램.A computer program that executes the method according to any one of claims 6 or 9 through a computer, and is 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 KR20220059617A (en) 2022-05-10
KR102613979B1 true 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 (1)

* 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

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102488673B1 (en) * 2015-10-12 2023-01-16 삼성전자주식회사 Control circuit for estimating entry time of power save mode and device having the same
KR102462507B1 (en) * 2017-06-29 2022-11-02 삼성전자주식회사 Processor, computing device comprising thereof and processor low power mode selecting method

Patent Citations (1)

* 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

Also Published As

Publication number Publication date
KR20220059617A (en) 2022-05-10

Similar Documents

Publication Publication Date Title
US10732684B2 (en) Method and apparatus for managing global chip power on a multicore system on chip
KR100864964B1 (en) Arithmetic Processing System and Arithmetic Processing Control Method, Task Management System and Task Management Method, and Storage Medium
US9074947B2 (en) Estimating temperature of a processor core in a low power state without thermal sensor information
US8140868B2 (en) Performance conserving power consumption reduction in a server system
KR0177536B1 (en) Information processing apparatus, processing method thereof, and power supply control method therefor
KR100550195B1 (en) Power aware adaptive polling
US7058824B2 (en) Method and system for using idle threads to adaptively throttle a computer
US20160378168A1 (en) Dynamic power management optimization
US7587621B2 (en) Computer system management and throughput maximization in the presence of power constraints
JP4490298B2 (en) Processor power control apparatus and processor power control method
JP2008165798A (en) Performance management of processor in data processor
JP2016506576A (en) Integrated circuit idle phase prediction.
KR20090062107A (en) Cluster system for reducing consumption power and power source management method thereof
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US20140006666A1 (en) Task scheduling method and multi-core system
EP4027241A1 (en) Method and system for optimizing rack server resources
US20180287949A1 (en) Throttling, sub-node composition, and balanced processing in rack scale architecture
US10275007B2 (en) Performance management for a multiple-CPU platform
KR102613979B1 (en) Apparatus and method for managing power of multi-core processor
CN113841119B (en) Control device and distributed processing method
CN110968418A (en) Signal-slot-based large-scale constrained concurrent task scheduling method and device
KR20230007774A (en) Memory management system and method for edge type artificial intelligence SoC
JPH11110063A (en) Computer system
CN117850566A (en) Host power supply dynamic management algorithm in IaaS cloud platform
JP2016224582A (en) Control method, control device, and control program

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