KR101770587B1 - 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템 - Google Patents

멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템 Download PDF

Info

Publication number
KR101770587B1
KR101770587B1 KR1020110014863A KR20110014863A KR101770587B1 KR 101770587 B1 KR101770587 B1 KR 101770587B1 KR 1020110014863 A KR1020110014863 A KR 1020110014863A KR 20110014863 A KR20110014863 A KR 20110014863A KR 101770587 B1 KR101770587 B1 KR 101770587B1
Authority
KR
South Korea
Prior art keywords
core
workload
level
cores
signal
Prior art date
Application number
KR1020110014863A
Other languages
English (en)
Other versions
KR20120095507A (ko
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 KR1020110014863A priority Critical patent/KR101770587B1/ko
Priority to US13/396,617 priority patent/US8880924B2/en
Publication of KR20120095507A publication Critical patent/KR20120095507A/ko
Application granted granted Critical
Publication of KR101770587B1 publication Critical patent/KR101770587B1/ko

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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Abstract

멀티 코어 프로세서의 핫 플러깅 방법은 활성화상태에 있는 복수의 코어들 각각의 동작 파라미터를 모니터링하는 단계, 상기 모니터링된 동작 파라미터에 기초하여 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화시키는 단계 및 나머지 코어들의 동작 파라미터의 모니터링에 기초하여 상기 비활성화된 코어를 선택적으로 다시 활성화시키는 단계를 포함한다.

Description

멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템{A method of hot plugging of multi-core processor and multi-core processor system}
본 발명은 프로세서의 전력 관리 방법에 관한 것으로 보다 상세하게는 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템에 관한 것이다.
휴대용 컴퓨터 시스템은 데스크탑 시스템의 대체로서 점차 대중화되어 가고 있다. 상기 휴대용 컴퓨터 시스템은 AC 전원과 같은 외부 전원에 연결되지 않는 경우에는 배터리에 전원을 의존하게 되는데, 이때 상기 배터리의 수명은 제한적이기 때문에 프로세서의 코어 클럭 주파수 및 코어 공급전압을 낮춤으로써 시스템에서의 전력소모를 줄일 수 있다.
한편, 최근 컴퓨터 분야에서는 멀티태스킹과 다수의 고속연산을 요구하는 멀티미디어 성능이 중시되어 하나의 프로세서 내에 복수 개의 코어를 구비하는 멀티-코어 프로세서들이 개발되었다. 상기 멀티-코어 프로세서는 작업을 복수의 코어들이 분담하여 처리하기 때문에 처리 성능을 향상시킬 수 있다. 또한, 여러 개의 프로세서를 부가하여 사용하는 것에 비해 코어 이외의 부분을 공용할 수 있기 때문에 제조비용이 저렴하고 크기를 소형화할 수 있는 이점이 있다.
멀티-코어 프로세서는 복수 개의 코어가 동작하기 때문에 싱글-코어 프로세서에 비하여 소비전력이 증가하고, 상기 소비전력의 증가는 배터리의 연속동작 시간을 단축시킨다. 또한, 전력 소모가 증가할 경우 발열로 인하여 시스템의 수명이 단축되고, 더 나아가 시스템의 기능이 열화 될 수 있다.
따라서 멀티-코어 프로세서의 전력 소모를 줄이고, 복수의 코어를 최적의 상태로 동작시키기 위한 기술의 개발이 요구되고 있다.
본 발명의 일 목적은 성능을 유지하면서 전력을 감소시킬 수 있는 멀티코어 프로세서의 핫 플러깅 방법을 제공하는데 있다.
본 발명의 다른 목적은 성능을 유지하면서 전력을 감소시킬 수 있는 멀티코어 프로세서 시스템을 제공하는데 있다.
상기 일 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 멀티 코어 프로세서의 핫 플러깅 방법은 활성화상태에 있는 복수의 코어들 각각의 동작 파라미터를 모니터링하는 단계, 상기 모니터링된 동작 파라미터에 기초하여 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화시키는 단계 및 나머지 코어들의 동작 파라미터의 모니터링에 기초하여 상기 비활성화된 코어를 선택적으로 다시 활성화시키는 단계를 포함한다.
실시예에 있어서, 상기 동작 파라미터는 상기 복수의 코어들 각각의 작업부하(workroad)에 해당할 수 있다.
실시예에 있어서, 상기 복수의 코어들은 제1 및 제2 코어들 포함하고, 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화시키는 단계는 상기 제1 코어와 상기 제2 코어의 동작 파라미터들의 레벨을 비교하여 더 작은 레벨의 동작 파라미터의 코어를 선택하는 단계 및 상기 선택된 코어의 동작 파라미터 레벨이 일정 시간 동안 다운 기준 레벨 미만인지 여부에 따라 상기 선택된 코어를 선택적으로 비활성화시키는 단계를 포함할 수 있다.
상기 선택된 코어의 동작 파라미터 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 다운 기준 레벨 미만인 경우에는 상기 선택된 코어를 비활성화시키고, 상기 선택된 코어의 동작 파라미터 레벨이 상기 일정 기준 시간 동안 연속적으로 다운 기준 레벨 이하가 아닌 경우에는 다시 상기 제1 코어와 상기 제2 코어의 동작 파라미터들의 레벨을 비교하여 더 작은 레벨의 동작 파라미터의 코어를 선택할 수 있다.
실시예에 있어서, 상기 비활성화된 코어를 선택적으로 다시 활성화시키는 단계는 상기 비선택된 코어의 동작 파라미터를 모니터링하는 단계 및 상기 비선택된 코어의 동작 파라미터 레벨이 일정 시간 동안 업 기준 레벨을 초과하는지 여부에 따라 상기 비활성화된 코어를 선택적으로 다시 활성화시키는 단계를 포함할 수 있다.
상기 비선택된 코어의 동작 파라미터 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하는 경우에는 상기 비활성화된 코어를 다시 활성화시키고, 상기 비선택된 코어의 동작 파라미터 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하지 않는 경우에는 상기 비선택된 코어의 동작 파라미터를 다시 모니터링할 수 있다.
상기 일 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 멀티 코어 프로세서는 복수의 코어들을 구비하는 멀티코어 프로세서, 동적 작업부하 모니터, 핫플러그 컨트롤러 및 타이머를 포함한다. 상기 동적 작업부하 모니터는 상기 복수의 코어들 각각의 동작 파라미터에 기초한 각각의 작업 부하율에 따른 상태 천이 신호를 생성한다. 상기 핫플러그 컨트롤러는 상기 상태 천이 신호와 타임아웃 신호 및 인터럽트 신호에 기초하여 상기 복수의 코어들 중 적어도 하나의 코어를 선택적으로 비활성화시킨다. 상기 타이머는 상기 타임아웃 신호 및 상기 인터럽트 신호를 상기 핫플러그 컨트롤러에 제공한다.
실시예에 있어서, 상기 핫플러그 컨트롤러는 상기 상태 천이 신호, 상기 타임아웃 신호 및 상기 인터럽트 신호에 기초하여 상기 복수의 코어들 각각의 상태를 정의하는 상태 머신을 포함할 수 있다.
실시예에 있어서, 상기 복수의 코어들은 제1 및 제2 코어를 포함하고, 상기 핫플러그 컨트롤러는 상기 제1 코어가 비활성화되고 상기 제2 코어의 작업 부하율이 일정시간동안 업기 기준 레벨을 초과하는 경우 상기 비활성화된 제1 코어를 다시 활성화시킬 수 있다.
상기 동적 작업부하 모니터는 상기 제1 동작 파라미터에 기초하여 상기 제1 코어에 대한 제1 작업부하를 산출하는 제1 연산부, 상기 제2 동작 파라미터에 기초하여 상기 제2 코어에 대한 제2 작업 부하를 산출하는 제2 연산부, 상기 제1 작업 부하와 상기 제2 작업 부하를 비교하여 더 작은 작업 부하의 코어를 선택하는 선택부, 상기 선택된 코어의 작업부하를 업 기준 레벨 및 다운 기준 레벨과 비교하여 제1 및 제2 비교 신호를 제공하는 비교부, 상기 제1 및 제2 비교 신호를 디코딩하여 상기 상태 천이 신호로 제공하는 디코더를 포함할 수 있다.
실시예에 있어서, 상기 선택부는 상기 제1 작업부하와 상기 제2 작업부하를 비교하여 비교 신호를 출력하는 비교기, 상기 제1 작업부하와 상기 제2 작업부하중 어느 하나의 레벨이 0인 경우 로우 레벨이 되는 레벨 신호를 출력하는 레벨 감지기, 상기 비교 신호와 상기 레벨 신호에 대하여 배타적 노어 연산을 수행하여 선택 신호를 제공하는 배타적 노어 게이트 및 상기 선택 신호에 응답하여 상기 제1 작업부하와 상기 제2 작업부하중 하나를 선택하는 멀티플렉서를 포함할 수 있다.
본 발명의 실시예들에 따르면, 복수의 코어들을 포함하는 멀티코어 프로세서에서 각 코어의 작업 부하에 따라 동적으로 코어를 핫플러그 오프시키거나 다시 핫플러그 온 시켜 시스템 성능을 유지하면서 전력 소모를 최소화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 멀티코어 프로세서의 핫 플러깅 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 도 1의 단계(S200)를 상세히 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 도 1의 단계(S300)를 상세히 나타내는 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템을 나타내는 블록도이다.
도 5는 본 발명의 일 실시예에 따른 도 4의 동적 작업부하 모니터의 구성을 나타내는 블록도이다.
도 6은 도 4의 상태 머신의 가능한 상태를 나타내는 다이어그램이다.
도 7은 시간의 경과에 따른 도 4의 제1 코어와 제2 코어의 작업부하 레벨을 나타내는 그래프이다.
도 8은 본 발명의 다른 실시예에 따른 멀티코어 프로세서 시스템을 나타내는 블록도이다.
도 9는 본 발명의 일 실시예에 따른 도 8의 전압-클록 공급기의 일 예를 나타내는 도면이다.
도 10은 본 발명이 실시예에 따른 멀티코어 시스템을 포함하는 전자 기기의 일 예를 나타내는 블록도이다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 구성요소에 대해 사용하였다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일하거나 유사한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 멀티코어 프로세서의 핫 플러깅 방법을 나타내는 흐름도이다.
도 1을 참조하면, 멀티코어 프로세서의 핫 플러깅 방법에서는 활성화상태에 있는 복수의 코어들 각각의 동작 파라미터를 모니터링한다(S100). 여기서 복수들 코어들 각각의 동작 파라미터는 복수들 코어의 각각의 동작 주파수 또는 동작 전압일 수 있다. 단계(S100)에서는 복수의 코어들 각각의 동작 파라미터를 모니터링하고 복수들 코어들 각각의 작업 부하(workload) 레벨을 산출할 수 있다.
상기 모니터링된 동작 파라미터(즉 상기 산출된 작업 부하 레벨)에 기초하여 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화(핫플러그 오프)시킨다(S200). 예를 들어 복수의 코어들이 제1 코어 및 제2 코어를 포함한다고 할 때, 제1 코어의 작업 부하 레벨과 제2 코어의 작업 부하 레벨을 비교하고, 더 작은 작업 부하 레벨을 가지는 코어를 선택한다(제1 코어가 선택된다고 가정). 선택된 코어(제1 코어)의 작업 부하 레벨이 일정 시간 동안 미리 정해진 기준(다운 기준 레벨) 미만에서 지속되면, 선택된 코어(제1 코어)를 비활성화(핫 플러그 오프)시킬 수 있다.
이 경우에 제1 코어가 비활성화되었기 때문에 제2 코어의 작업 부하 레벨이 증가할 수 있다. 나머지(선택되지 않은) 코어(제2 코어) 동작 파라미터 파라미터의 모니터링에 기초하여 상기 비활성화된 코어(제1 코어)를 선택적으로 다시 활성화(핫플러그 온)시킨다(S300). 즉 제2 코어의 작업 부하 레벨이 증가하게 되는 경우, 일정 시간 동안 제2 코어의 작업 부하 레벨이 미리 정해진 기준(업 기준 레벨)을 지속적으로 초과하면, 비활성화된 코어(제1 코어)를 다시 활성화(핫플러그 온)시킬 수 있다. 여기서 핫플러그 온 및 핫플러그 오프란 용어는 제1 코어를 비활성화시키고 다시 활성화시킬 때 제1 코어 및 제2 코어가 포함되는 시스템의 전원을 오프시키지 않고 제1 코어만을 비활성화시키거나 활성화시키기 때문에 사용되는 용어이다.
도 1의 멀티코어 프로세서의 핫플러깅 방법은 주로 제1 및 제2 코어의 두 개의 코어를 포함하는 경우에 대하여 설명하였다. 하지만 본 발명의실시예에 따른 멀티코어 프로세서의 핫플러깅 방법은 두 개의 코어 뿐만이 아니라 세 개 이상의 코어를 포함하는 경우에도 적용될 수 있다. 예를 들어 멀티 코어 프로세서가 제1 내지 제4 코어의 네 개의 코어를 포함하는 콰드코어 프로세서인 경우를 가정하자. 이 경우에 단계(S100)에서는 제1 코어와 제2 코어와 작업 부하 레벨을 비교하고 제3 코어와 제4 코어의 작업 부하 레벨을 비교하는 방식으로 최소의 작업 부하 레벨을 가지는 코어를 선택할 수 있다. 또한 단계(S200)에서는 선택된 코어의 작업 부하 레벨이 일정 시간 동안 미리 정해진 기준 (다운 기준 레벨) 미만에서 지속되면 선택된 코어를 핫플러그 오프시킬 수 있다. 네 개의 코어 중에서 하나의 코어가 핫플러그 오프되었기 때문에 나머지 세 개의 코어들 중에서 적어도 하나의 코어의 작업 부하 레벨이 증가할 수 있다. 따라서 단계(S300)에서는 나머지 세 개의 코어들 각각의 작업 부하 레벨을 모니터링하고 세 개의 코어들 중 적어도 하나의 코어의 작업 부하 레벨이 일정시간 동안 미리 정해진 기준(업 기준 레벨)을 지속적으로 초과하면, 핫플러그 오프된 코어를 다시 핫 플러그 온 시킬 수 있다.
코어들 각각의 작업 부하 레벨은 코어들 각각이 전력을 소모하는 것을 나타내는 것으로서, 코어들 각각의 동작 주파수 또는 동작 전압에 상응할 수 있다. 따라서 코어의 작업 부하 레벨이 높다는 것은 코어의 동작 주파수 또는 동작 전압이 크다는 것을 나타낸다. 코어가 어플리케이션을 수행하는 경우, 코어의 전력 레벨이 클수록, 소모 전력은 증가하고, 코어의 작업 속도는 빨라진다. 이는 코어에서 소모되는 전력이 대부분 코어가 구현된 디지털 논리 회로에서 논리 소자들의 스위칭 동작에 의하여 발생하므로, 코어의 동작 주파수 또는 동작 전압이 증가함에 따라 논리 소자들의 스위칭 동작이 많아지기 때문이다. 또한 코어의 동작 주파수와 동작 전압은 서로 연관되어 있는 것이므로, 코어의 동작 주파수가 증가하면 코어의 동작 전압이 커질 수 있고, 코어의 동작 주파수가 감소하면 코어의 동작 전압이 작아질 수 있다.
또한 작업 부하 레벨을 산출하기 위하여 일정한 구간에서 복수의 코어들 각각의 단위 작업 부하율을 산출할 수 있다. 단위 작업 부하율은 단위 구간마다 코어들 각각의 액티브 구간 및 아이들 구간을 계산하고, 액티브 구간 및 아이들 구간에 기초하여 코어들 각각의 단위 작업 부하율이 산출될 수 있다. 액티브 구간은 코어에 메인 클럭 신호가 인가되는 구간에 상응할 수 있고, 아이들 구간은 코어에 메인 클럭 신호가 인가되지 않는 구간에 상응할 수 있다. 액티브 구간 및 아이들 구간은 리눅스(linux) 및 윈도우즈(windows)와 같은 운영 체제(Operating System)에 의하여 결정될 수 있다. 실시예에 따라 운영체제가 복수의 코어들 각각의 아이들 구간을 결정하면. 코어들 각각의 액티브 구간은 단위 구간에서 아이들 구간을 제외한 구간으로 결정될 수 있다.
즉 본 발명의 실시예에서는 코어들 각각의 작업 부하 레벨 대신에 유휴율(idle rate)을 산출하고, 더 높은 유휴율을 가지는 코어를 선택하고, 선택된 코어의 유휴율이 일정 시간 동안 정해진 기준 값을 지속적으로 초과하는 경우에 상기 선택된 코어를 핫플러그 오프시킬 수 있다. 또한 나머지 코어의 유휴율이 감소하는 경우에 나머지 코어의 유휴율이 일정 시간 동안 지속적으로 정해진 기준 값 미만이면 상기 핫플러그 오프된 코어를 다시 핫플러그 온 시킬 수 있다.
따라서 본 발명의 실시예에서는 복수의 코어들 각각의 작업 부하를 모니터링하고, 이에 기초하여 적어도 하나의 코어를 핫플러그 오프킬수 있다. 핫플러그 오프된 코어에서는 동작에 필요한 최소한의 전력도 소모화지 않으므로 시스템 전체의 전력 소모를 감소시킬 수 있다.
도 2는 본 발명의 일 실시예에 따른 도 1의 단계(S200)를 상세히 나타내는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 도 1의 단계(S300)를 상세히 나타내는 흐름도이다.
도 2 및 도 3에서는 복수의 코어들이 제1 코어와 제2 코어를 포함하는 경우를 설명한다.
도 2를 참조하면, 상기 모니터링된 동작 파라미터에 기초하여 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화(핫플러그 오프)시기키기 위하여 제1 코어와 제2 코어의 동작 파라미터들의 레벨을 비교하여 더 작은 레벨의 동작 파라미터의 코어를 선택한다(S220). 보다 상세하게는 제1 코어의 제2 코어의 동작 파라미터 레벨에 기초하여 제1 코어와 제2 코어의 작업 부하 레벨(작업 부하율)을 산출한다. 상기 선택된 코어의 작업 부하 레벨이 일정 시간 동안 다운 기준 레벨 미만인지 여부에 따라 상기 선택된 코어(제1 코어)를 선택적으로 비활성화시킨다(S220~S280). 실시예에 있어서, 상기 선택된 코어(제1 코어)의 작업 부하 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 다운 기준 레벨 미만인 경우(단계(S270)에서 YES)에는 상기 선택된 코어(제1 코어)를 비활성화시킬 수 있다(S280). 실시예에 있어서, 상기 선택된 코어(제1 코어)의 작업 부하 레벨이 상기 일정 기준 시간 동안 연속적으로 다운 기준 레벨 이하가 아닌 경우(단계(S250)에서 YES, 단계(S260)에서 NO)에는 다시 상기 제1 코어와 상기 제2 코어의 작업 부하 레벨을 비교하여 더 작은 레벨의 코어를 선택(S210)할 수 있다.
보다 상세하게는 제1 코어와 제2 코어의 작업 부하 레벨을 비교하여 제1 코어가 선택된다(S210). 제1 코어의 작업 부하 레벨과 다운 기준 레벨이 비교된다(S220). 제1 코어의 작업 부하 레벨이 다운 기준 레벨 이상(단계(S220)에서 NO)이면 단계(S210)로 복귀된다. 제1 코어의 작업 부하 레벨이 다운 기준 레벨 미만이면(단계(S220)에서 YES), 지속성 여부를 판단하기 위하여 타이머를 스타트시킨다(S230). 타이머를 스타트 시킨후에 제1 코어의 작업 부하 레벨을 모니터링하여(S240) 제1 코어의 작업 부하 레벨이 증가하였는지 여부를 판단한다(S250).단계(S250)에서는 제1 코어의 작업 부하 레벨이 일정시간 동안 상기 다운 기준 레벨을 초과하는지 여부를 판단한다. 제1 코어의 작업 부하 레벨이 증가한 경우에는(단계(S250)에서 YES) 타이머를 정지(리셋)시키고 단계(S210)로 복귀한다. 제1 코어의 작업 부하 레벨이 증가하지 않은 경우에는(단계(S250)에서 NO)는 타이머의 만료 여부를 판단한다(S270). 타이머가 만료되지 않았으면(단계(S270)에서 NO), 단계(S240)로 복뒤한다. 타이머가 만료되었으면(단계(S270)에서 YES), 즉 제1 코어의 작업 부하 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 다운 기준 레벨 미만인 경우이므로 제1 코어를 핫플러그 오프시킨다(S280).
도 3은 본 발명의 일 실시예에 따른 도 1의 단계(S300)를 상세히 나타내는 흐름도이다.
도 3을 참조하면, 상기 비활성화된 코어(제1 코어)를 선택적으로 다시 활성화시키기 위하여 상기 비선택된 코어(제2 코어)의 작업부하 레벨을 모니터링한다(S310). 상기 비선택된 코어(제2 코어)의 작업부하 레벨이 일정 시간 동안 업 기준 레벨을 초과하는지 여부에 따라 상기 비활성화된 코어(제1 코어)를 선택적으로 다시 활성화시킨다(S320~S380). 실시예에 있어서, 상기 비선택된 코어(제2 코어)의 작업부하 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하는 경우(단계(S270)에서 YES)에는 상기 비활성화된 코어(제1 코어)를 다시 활성화시킬 수 있다(S380). 실시예에 있어서, 상기 비선택된 코어(제2 코어)의 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하지 않는 경우(단계(S350)에서 YES, 단계(S360)에서 NO)에는 상기 비선택된 코어(제2 코어)의 작업 부하 레벨을 다시 모니터링할 수 있다(S310).
보다 상세하게는 제1 코어가 핫플러그 오프되었으므로 제2 코어의 작업 부하 레벨이 증가할 수 있다. 따라서 제2 코어의 작업 부하 레벨을 모니터링한다(S310). 제2 코어의 작업 부하 레벨과 업 기준 레벨이 비교된다(S320). 제2 코어의 작업 부하 레벨이 업 기준 레벨 이하(단계(S320)에서 NO)이면 단계(S310)로 복귀한다. 제2 코어의 작업 부하 레벨이 다운 기준 레벨을 초과하면(단계(S320)에서 YES), 지속성 여부를 판단하기 위하여 타이머를 스타트시킨다(S330). 타이머를 스타트 시킨후에 제2 코어의 작업 부하 레벨을 모니터링하여(S340) 제2 코어의 작업 부하 레벨이 감소하였는지 여부를 판단한다(S350). 단계(S350)에서는 제2 코어의 작업 부하 레벨이 일정시간 동안 상기 업 기준 레벨 이하기 되는지 여부를 판단한다. 제2 코어의 작업 부하 레벨이 감소한 경우에는(단계(S350)에서 YES) 타이머를 정지(리셋)시키고 단계(S310)로 복귀한다. 제2 코어의 작업 부하 레벨이 증가하지 않은 경우에는(단계(S350)에서 NO)는 타이머의 만료 여부를 판단한다(S370). 타이머가 만료되지 않았으면(단계(S370)에서 NO), 단계(S340)로 복귀한다. 타이머가 만료되었으면(단계(S370)에서 YES), 즉 제2 코어의 작업 부하 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하므로 제1 코어를 다시 핫플러그 온시킨다(S380). 제1 코어가 다시 핫플러그 온 된 후에는 다시 단계(S100)로 복귀한다.
따라서 본 발명의 실시예에 따르면, 복수의 코어들 중 하나가 핫플러그 오프된 경우에 나머지 코어의 작업 부하 레벨을 모니터링하여 나머지 코어의 작업 부하가 필요 이상으로 증가되는 경우 핫플러그 오프된 코어를 다시 핫플러그 온 시켜 시스템의 성능을 유지시킬 수 있다. 따라서 본 발명의 실시예에 따르면 복수의 코어들을 포함하는 멀티코어 프로세서에서 각 코어의 작업 부하에 따라 동적으로 코어를 핫플러그 오프시키거나 다시 핫플러그 온 시켜 시스템 성능을 유지하면서 전력 소모를 최소화할 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티코어 프로세서 시스템을 나타내는 블록도이다.
도 4를 참조하면, 멀티코어 프로세서 시스템(10)은 핫플러그 컨트롤러(100), 타이머(150), 멀티코어 프로세서(200) 및 동적 작업부하 모니터(300)를 포함한다.
멀티코어 프로세서(200)는 적어도 제1 코어(210) 및 제2 코어(220)를 포함하여 복수개의 코어를 포함할 수 있다. 즉 멀티코어 프로세서(200)는 세 개 이상의 코어들을 포함할 수 있다. 멀티코어 프로세서(200)는 코어 인터페이스(미도시)를 더 포함할 수 있다. 코어 인터페이스는 수행되는 어플리케이션에 따라 해당하는 프로세스를 제1 코어(210) 및 제2 코어(220)에 할당하는 역할을 한다. 따라서 어플리케이션에 따라 제1 코어(210) 및 제2 코어(220)는 서로 실질적으로 동일한 프로세스를 수행할 수도 있고, 서로 다른 크기의 프로세스를 수행할 수도 있다. 즉 코어 인터페이스는 제1 및 제2 코어에 프로세스를 동적으로 할당할 수 있다.
동적 작업부하 모니터(300)는 제1 코어(210) 및 제2 코어(220) 각각의 동작 파라미터들(OP1, OP2)들을 모니터링하고, 상기 동작 파라미터들(OP1, OP2)들에 기초한 제1 코어(210) 및 제2 코어(220) 각각의 작업 부하율에 따른 상태 천이 신호(STS)를 생성한다. 여기서 동작 파라미터들(OP1, OP2)은 코어들(210, 220) 각각의 동작 주파수 또는 동작 전압일 수 있다.
코어들(2120, 220) 각각의 작업 부하 레벨은 코어들 각각이 전력을 소모하는 것을 나타내는 것으로서, 코어들 각각의 동작 주파수 또는 동작 전압에 상응할 수 있다. 따라서 코어의 작업 부하 레벨이 높다는 것은 코어의 동작 주파수 또는 동작 전압이 크다는 것을 나타낸다. 코어가 어플리케이션을 수행하는 경우, 코어의 전력 레벨이 클수록, 소모 전력은 증가하고, 코어의 작업 속도는 빨라진다. 이는 코어에서 소모되는 전력이 대부분 코어가 구현된 디지털 논리 회로에서 논리 소자들의 스위칭 동작에 의하여 발생하므로, 코어의 동작 주파수 또는 동작 전압이 증가함에 따라 논리 소자들의 스위칭 동작이 많아지기 때문이다. 또한 코어의 동작 주파수와 동작 전압은 서로 연관되어 있는 것이므로, 코어의 동작 주파수가 증가하면 코어의 동작 전압이 커질 수 있고, 코어의 동작 주파수가 감소하면 코어의 동작 전압이 작아질 수 있다.
또한 작업 부하 레벨을 산출하기 위하여 일정한 구간에서 복수의 코어들 각각의 단위 작업 부하율을 산출할 수 있다. 단위 작업 부하율은 단위 구간마다 코어들 각각의 액티브 구간 및 아이들 구간을 계산하고, 액티브 구간 및 아이들 구간에 기초하여 코어들 각각의 단위 작업 부하율이 산출될 수 있다. 액티브 구간은 코어에 메인 클럭 신호가 인가되는 구간에 상응할 수 있고, 아이들 구간은 코어에 메인 클럭 신호가 인가되지 않는 구간에 상응할 수 있다. 액티브 구간 및 아이들 구간은 리눅스(linux) 및 윈도우즈(windows)와 같은 운영 체제(Operating System)에 의하여 결정될 수 있다. 실시예에 따라 운영체제가 복수의 코어들 각각의 아이들 구간을 결정하면. 코어들 각각의 액티브 구간은 단위 구간에서 아이들 구간을 제외한 구간으로 결정될 수 있다.
핫플러그 컨트롤러(100)는 상태 머신(110)을 포함할 수 있고, 핫플러그 컨트롤러(100)는 코어들(210, 220)의 작업부하 레벨을 나타내는 상태 천이 신호(STS)와 타이머(150)에서 제공되는 타임아웃 신호(TOUT) 및 인터럽트(ITR) 신호에 기초하여 코어들(210, 220) 중 적어도 하나를 선택적으로 비활성화(핫플러그 오프)시킬 수 있다. 즉 핫플러그 컨트롤러(100)에 포함되는 상태 머신(110)은 코어들(210, 220)의 작업부하 레벨을 나타내는 상태 천이 신호(STS)와 타이머(150)에서 제공되는 타임아웃 신호(TOUT) 및 인터럽트(ITR) 신호에 응답하여 코어들(210, 220)의 상태를 정의할 수 있고, 핫플러그 컨트롤러(100)는 상태 머신(110)에 의하여 정의되는 코어들(210, 220)의 상태에 따라 제1 인에이블 신호(EN1)와 제2 인에이블 신호(EN2)에 의하여 코어들(210, 220) 중 적어도 하나를 핫플러그 오프시킬 수 있다.
또한 핫플러그 컨트롤러(100)는 상태 머신(110)에 의하여 정의되는 코어들(210, 220)의 상태에 따라 타이머(150)를 스타트시키는 타이머-온 신호(TON)와 상기 타이머(150)를 리셋시키는 리셋 신호(RST)를 타이머(150)에 제공할 수 있다.
또한 핫플러그 컨트롤러(100)는 상태 머신(110)에 의하여 정의되는 코어들(210, 220)의 상태에 따라 제1 코어(210)가 핫플러그 오프되는 경우에 제2 코어(220)의 상태가 일정 기준을 만족하면 다시 제1 코어(210)를 핫플러그 온 시킬 수 있다.
도 5는 본 발명의 일 실시예에 따른 도 4의 동적 작업부하 모니터의 구성을 나타내는 블록도이다.
도 5를 참조하면, 동적 작업부하 모니터(300)는 제1 연산부(311), 제2 연산부(312), 선택부(320), 비교부(330) 및 디코더(340)를 포함하여 구성될 수 있다.
제1 연산부(311)는 제1 코어(210)의 동작 파라미터(OP1)에 기초하여 제1 코어(210)의 제1 작업부하(WR1)를 산출한다. 제2 연산부(312)는 제2 코어(220)의 동작 파라미터(OP2)에 기초하여 제2 코어(220)의 제2 작업부하(WR2)를 산출한다. 상술한 바와 같이, 동작 파라미터들(OP1, OP2)은 코어들(210, 220)의 동작 주파수 또는 동작 전압일 수 있다.
선택부(320)는 비교기(321)와 레벨 감지기(323), 배타적 노어 게이트(325) 및 멀티플렉서(327)를 포함할 수 있다. 비교기(321)의 제1(양의) 입력단자에는 제1 작업부하(WR1)가 입력되고, 제2(음의) 입력단자에는 제2 작업부하(WR2)가 입력된다. 비교기(321)는 제1 작업부하(WR1)의 레벨과 제2 작업부하(WR2)의 레벨을 비교하고 이를 나타내는 비교 신호(CS)를 출력할 수 있다. 레벨 감지기(323)는 제1 작업부하(WR1)와 제2 작업부하(WR2)의 레벨을 감지하고, 제1 작업부하(WR1)와 제2 작업부하(WR2) 중 어느 하나가 0의 레벨인 경우 로직 로우인 레벨 신호(LS)를 출력할 수 있다. 제1 작업부하(WR1)와 제2 작업부하(WR2)가 모두 0이 아닌 경우에는 레벨 감지기(323)는 로직 하이인 레벨 신호(LS)를 출력할 수 있다. 배타적 NOR 게이트(325)는 비교 신호(CS)와 레벨 신호(LS)에 대하여 배타적 NOR 연산을 수행하여 선택 신호(SS)를 출력할 수 있다. 즉 배타적 NOR 게이트(325)는 비교 신호(CS)와 레벨 신호(LS)가 동일한 로직 레벨을 갖는 경우에 로직 하이 레벨의 선택 신호(SS)를 출력할 수 있다. 멀티플렉서(323)는 선택 신호(SS)에 응답하여 제1 작업부하(WR1)의 레벨과 제2 작업부하(WR2) 중 하나를 선택하여 선택된 작업부하(SWR)로서 제공한다.
비교부(330)는 제1 비교기(331) 및 제2 비교기(333)를 포함할 수 있다. 제1 비교기(331)는 선택된 작업부하(SWR)를 다운 기준 레벨(RD)과 비교하여 제1 비교 신호(CS1)를 출력할 수 있다. 제2 비교기(333)는 선택된 작업부하(SWR)를 업 기준 레벨(UD)과 비교하여 제2 비교 신호(CS2)를 출력할 수 있다. 디코더(340)는 제1 비교 신호(CS1)와 제2 비교 신호(CS2)를 디코딩하여 코어들(210, 220)의 상태를 나타내는 상태 천이 신호(STS)를 출력할 수 있다.
예를 들어, 제1 작업부하(WR1)의 레벨이 제2 작업부하(WR2)의 레벨보다 작으면 비교기(321)는 로우 레벨의 비교 신호(CS)를 출력한다. 이 때, 제1 작업부하(WR1)와 제2 작업부하(WR2)의 레벨은 모두 0이 아니므로 레벨 감지기(323)에서는 하이 레벨의 레벨 신호(LS)를 출력한다. 따라서 배타적 노어 게이트(325)는 로우 레벨의 선택 신호(SS)를 출력하므로 멀티플렉서(327)는 제1 작업부하(WR1)를 선택된 작업부하(SWR)로서 출력한다. 제1 작업부하(WR1)의 레벨이 다운 기준 레벨(RD)보다 작으면, 제1 및 제2 비교신호들(CS1, CS2)은 "00"일 수 있다. 제1 작업부하(WR1)의 레벨이 다운 기준 레벨(RD)보다 크고 업 기준 레벨(RU)보다 작으면 제1 및 제2 비교신호들(CS1, CS2)은 "10"일 수 있다. 제1 작업부하(WR1)의 레벨이 업 기준 레벨(RU)보다 크면 제1 및 제2 비교신호들(CS1, CS2)은 "11"일 수 있다. 디코더(340)는 제1 및 제2 비교신호들(CS1, CS2)의 논리 레벨에 따른 상태 천이 신호(STS)를 핫플러그 컨트롤러(100)에 제공할 수 있다. 다른 실시예에서는 제1 비교기(331)와 제2 비교기(333)와 선택된 작업부하(SWR), 다운 기준 레벨(RD) 및 업 기준 레벨(RU)의 연결 관계에 따라 제1 및 제2 비교신호들(CS1, CS2)은 논리 레벨은 달라질 수 있다.
예를 들어, 제1 작업부하(WR1)의 레벨이 미리 정해진 기간 동안 연속적으로 다운 기준 레벨(RD) 이하이면, 핫플러그 컨트롤러(100)에 의하여 제1 코어(210)는 핫플러그 오프된다. 제1 코어(210)가 핫플러그 오프되면, 제1 작업부하(WR1)의 레벨은 0이된다. 따라서 비교기(321)는 로우 레벨의 비교 신호(CS)를 출력하고, 감지기(323)에서는 로우 레벨의 레벨 신호(LS)를 출력한다. 그러므로 배타적 노어 게이트(325)는 하이 레벨의 선택 신호(SS)를 출력하므로 멀티플렉서(327)는 제2 작업부하(WR2)를 선택된 작업부하(SWR)로서 출력한다. 따라서 비교부(330)에서는 제2 작업부하(WR2)의 레벨을 다운 기준 레벨(RD) 및 업 기준 레벨(RU)과 비교하여 제1 및 제2 비교신호들(CS1, CS2)을 출력할 수 있다.
예를 들어, 제1 코어(210)가 핫플러그 오프된 상태에서 제2 코어(220)의 작업부하(WR2)의 레벨이 미리 정해진 기간 동안 연속적으로 업 기준 레벨(RU)을 초과하면 핫플러그 컨틀롤러(100)에 의하여 제1 코어(210)가 다시 핫플러그 온 될 수 있다.
예를 들어, 제1 작업부하(WR1)의 레벨이 제2 작업부하(WR2)의 레벨보다 크면 비교기(321)는 하이 레벨의 비교 신호(CS)를 출력한다. 이 때, 제1 작업부하(WR1)와 제2 작업부하(WR2)의 레벨은 모두 0이 아니므로 레벨 감지기(323)에서는 하이 레벨의 레벨 신호(LS)를 출력한다. 따라서 배타적 노어 게이트(325)는 하이 레벨의 선택 신호(SS)를 출력하므로 멀티플렉서(327)는 제2 작업부하(WR2)를 선택된 작업부하(SWR)로서 출력한다. 제2 작업부하(WR2)의 레벨이 다운 기준 레벨(RD)보다 작으면, 제1 및 제2 비교신호들(CS1, CS2)은 "00"일 수 있다. 제2 작업부하(WR2)의 레벨이 다운 기준 레벨(RD)보다 크고 업 기준 레벨(RU)보다 작으면 제1 및 제2 비교신호들(CS1, CS2)은 "10"일 수 있다. 제2 작업부하(WR2)의 레벨이 업 기준 레벨(RU)보다 크면 제1 및 제2 비교신호들(CS1, CS2)은 "11"일 수 있다. 디코더(340)는 제1 및 제2 비교신호들(CS1, CS2)의 논리 레벨에 따른 상태 천이 신호(STS)를 핫플러그 컨트롤러(100)에 제공할 수 있다.
도 6은 도 4의 상태 머신의 가능한 상태를 나타내는 다이어그램이다.
도 6을 참조하면, 상태 머신(110)은 제1 및 제2 코어들(210, 220)의 작업부하 레벨과 타이머(150)의 상태에 기초하여 제1 내지 제4 상태(S1~S4) 중 하나의 상태를 갖을 수 있다.
이하 도 4 내지 도 6을 참조하여, 제1 내지 제4 상태(S1~S4)에 대하여 상세히 설명한다.
먼저, 제1 및 제2 코어들(210, 220)이 모두 활성화 상태에 있는 경우 즉 제1 및 제2 동작 파라미터들(OP1, OP2)에 기초한 제1 및 제2 코어들(210, 220)의 작업부하 레벨이 업 기준 레벨(RU)과 다운 기준 레벨(RD) 사이에 있는 경우, 동적 작업부하 모니터(300)는 이러한 상태를 나타내는 상태 천이 신호(STS)를 핫플러그 컨트롤러(100)에 제공하고, 상태 천이 신호(STS)에 응답하여 상태 머신(110)은 제1 상태(S1)를 정의한다.
제1 상태(S1)에서 동적 작업부하 모니터(300)에 의하여 제1 코어(210)의 작업부하가 다운 기준 레벨(RD) 이하로 감소되는 것이 감지되면, 동적 작업부하 모니터(300)는 이를 나타내는 상태 천이 신호(STS)를 핫플러그 컨트롤러(100)에 제공한다. 핫플러그 컨트롤러(100)는 이에 응답하여 타이머 온 신호(TON)를 타이머(150)에 출력한다. 이에 따라서 상태 머신(110)은 제2 상태(S2)를 정의한다. 제2 상태(S2)에서 일정시간이 경과한 후에 타이머(150)는 일정시간이 경과하였음을 나타내는 타임아웃신호(TOUT)를 핫플러그 컨트롤러(100)에 제공한다. 즉 제1 코어(210)의 작업부하가 일정시간동안 지속적으로 다운 기준 레벨(RD) 미만이면, 상태머신(110)은 제2 상태(S2)에서 제3 상태(S3)로 천이하고, 핫플러그 컨트롤러(100)는 제1 인에이블 신호(EN1)에 의하여 제1 코어(210)를 핫플러그 오프시킨다.
제2 상태(S2)에서 타이머(150)가 만료되기 전에, 제1 코어(210)의 작업부하가 다운 기준 레벨(RD)을 초과하게 되면, 이를 나타내는 상태 천이 신호(STS)에 의하여 핫플러그 컨트롤러(100)는 리셋 신호(RST)를 타이머(150)에 출력한다. 리셋 신호(RST)에 의하여 타이머(150)는 리셋되면서 인터럽트 신호(IRT)를 핫플러그 컨트롤러(100)에 제공한다. 핫플러그 컨트롤러(100)가 인터럽트 신호(IRT)를 수신하면, 상태 머신(110)의 상태는 제2 상태(S2)에서 제1 상태(S1)로 천이하게 된다. 제3 상태(S3)에서 제2 코어(220)의 작업부하가 동적 작업부하 모니터(300)에 의하여 모니터링된다.
제3 상태(S3)에서 제2 코어(220)의 작업부하가 업 기준 레벨(RU)을 초과하게 되면, 동적 작업부하 모니터(300)는 이를 나타내는 상태 천이 신호(STS)를 핫플러그 컨트롤러(100)에 제공한다. 핫플러그 컨트롤러(100)는 이 상태 천이 신호(STS)에 응답하여 타이머 온(TON) 신호를 타이머(150)에 출력하면서 상태 머신(110)은 제3 상태(S3)에서 제4 상태(S4)로 천이한다.
제4 상태(S4)에서 일정시간이 경과한 후에 타이머(150)는 일정시간이 경과하였음을 나타내는 타임아웃신호(TOUT)를 핫플러그 컨트롤러(100)에 제공한다. 즉 제2 코어(220)의 작업부하가 일정시간동안 지속적으로 업 기준 레벨(RU)을 초과하면, 상태머신(110)은 제4 상태(S4)에서 제1 상태(S1)로 천이하고, 핫플러그 컨트롤러(100)는 제1 인에이블 신호(EN1)에 의하여 제1 코어(210)를 다시 핫플러그 온시킨다.
제4 상태(S4)에서 타이머(150)가 만료되기 전에, 제2 코어(220)의 작업부하가 업 기준 레벨(RU) 이하가 되면, 이를 나타내는 상태 천이 신호(STS)에 의하여 핫플러그 컨트롤러(100)는 리셋 신호(RST)를 타이머(150)에 출력한다. 리셋 신호(RST)에 의하여 타이머(150)는 리셋되면서 인터럽트 신호(IRT)를 핫플러그 컨트롤러(100)에 제공한다. 핫플러그 컨트롤러(100)가 인터럽트 신호(IRT)를 수신하면, 상태 머신(110)의 상태는 제4 상태(S4)에서 제3 상태(S3)로 천이하게 된다. 이러한 상태머신(110)은 소프트웨어일 수 있다.
도 7은 시간의 경과에 따른 도 4의 제1 코어와 제2 코어의 작업부하 레벨을 나타내는 그래프이다.
도 7에서 참조번호(211)는 제1 코어(210)의 작업부하 레벨을 나타내고 참조번호(221)는 제2 코어(220)의 작업부하 레벨을 나타낸다.
도 7을 참조하면, 시간(T1)전의 구간(P1)에서 제1 코어(210)의 작업부하는 레벨(L11)에 해당하고, 제2 코어(220)의 작업부하는 레벨(L21)에 해당한다. 구간(P1)은 도 6에서 제1 상태(S1)에 해당한다. 시간(T1)에서 제1 코어(210)의 작업부하가 다운 기준 레벨(RD) 미만의 레벨(L12)이 되어 타이머(150)가 온된다. 제1 코어(210)의 작업부하가 다운 기준 레벨(RD) 미만의 레벨(L12)이 되는 상태가 시간(T1)에서 시간(T2)까지 구간(P2) 동안 계속된다. 구간(P2)은 도 6에서 제2 상태(S2)에 해당한다. 제1 코어(210)의 작업부하가 다운 기준 레벨(RD) 미만의 레벨(L12)이 되는 상태가 구간(P2) 동안 계속되었으므로 핫플러그 컨트롤러(100)는 제1 코어(210)를 핫플러그 오프시킨다. 제1 코어(210)가 핫플러그 오프되었으므로 제2 코어(220)의 작업부하가 레벨(L22)로 증가하게 된다. 시간(T2)에서 시간(T3)까지의 구간(P3)은 도 6에서 제3 상태(S3)에 해당한다. 시간(T3)에서 제2 코어(220)의 작업부하가 업 기준 레벨(RU)을 초과하여 레벨(L23)로 증가하게 된다. 따라서 타이머(150)가 온되고 제2 코어(220)의 작업부하가 업 기준 레벨(RU)을 초과하는 상태가 시간(T3)에서 시간(T4)까지 구간(P4) 동안 계속된다. 따라서 구간(P4)은 도 6에서 제4 상태(S4)에 해당한다. 제2 코어(220)의 작업부하가 업 기준 레벨(RU)을 초과하는 상태가 구간(P4)동안 계속되었으므로 핫플러그 컨트롤러(100)는 시간(T4)에 제1 코어(210)를 다시 핫플러그 온 시킨다. 따라서 시간(T4) 이후에 제1 코어(210)의 작업부하는 레벨(L11)로 증가하게 되고 제2 코어(220)의 작업부하는 레벨(L21)로 감소하게 된다. 시간(T4) 이후는 도 6에서 제1 상태(S1)에 해당한다.
도 4 내지 도 7을 참조한 설명에서, 멀티코어 프로세서(200)가 제1 및 제2 코어(210, 220)의 두 개의 코어를 포함하는 경우에 대하여 설명하였다. 하지만 본 발명의 실시예는 멀티코어 프로세서(200)가 세 개 이상의 코어를 포함하는 경우에도 적용될 수 있다.
따라서 본 발명의 실시예에 따르면, 복수의 코어들 중 하나가 핫플러그 오프된 경우에 나머지 코어의 작업 부하 레벨을 모니터링하여 나머지 코어의 작업 부하가 필요 이상으로 증가되는 경우 핫플러그 오프된 코어를 다시 핫플러그 온 시켜 시스템의 성능을 유지시킬 수 있다. 따라서 본 발명의 실시예에 따르면 복수의 코어들을 포함하는 멀티코어 프로세서에서 각 코어의 작업 부하에 따라 동적으로 코어를 핫플러그 오프시키거나 다시 핫플러그 온 시켜 시스템 성능을 유지하면서 전력 소모를 최소화할 수 있다.
도 8은 본 발명의 다른 실시예에 따른 멀티코어 프로세서 시스템을 나타내는 블록도이다.
도 8을 참조하면, 멀티코어 프로세서 시스템(20)은 핫플러그 컨트롤러(400), 타이머(450), 멀티코어 프로세서(500), 동적 작업부하 모니터(600), 스위치들(530, 540) 및 전압-클럭 공급기(700)를 포함할 수 있다.
멀티코어 프로세서(500)는 적어도 제1 코어(10) 및 제2 코어(520)를 포함하여 복수개의 코어를 포함할 수 있다. 즉 멀티코어 프로세서(500)는 세 개 이상의 코어들을 포함할 수 있다. 멀티코어 프로세서(500)는 코어 인터페이스(미도시)를 더 포함할 수 있다. 코어 인터페이스는 수행되는 어플리케이션에 따라 해당하는 프로세스를 제1 코어(510) 및 제2 코어(520)에 할당하는 역할을 한다. 따라서 어플리케이션에 따라 제1 코어(510) 및 제2 코어(520)는 서로 실질적으로 동일한 프로세스를 수행할 수도 있고, 서로 다른 크기의 프로세스를 수행할 수도 있다. 즉 코어 인터페이스는 제1 및 제2 코어에 프로세스를 동적으로 할당할 수 있다.
동적 작업부하 모니터(600)는 제1 코어(510) 및 제2 코어(520) 각각의 동작 파라미터들(OP1, OP2)들을 모니터링하고, 상기 동작 파라미터들(OP1, OP2)들에 기초한 제1 코어(510) 및 제2 코어(520) 각각의 작업 부하율에 따른 상태 천이 신호(STS)를 생성한다. 여기서 동작 파라미터들(OP1, OP2)은 코어들(510, 520) 각각의 동작 주파수 또는 동작 전압일 수 있다.
핫플러그 컨트롤러(400)는 상태 머신(410)을 포함할 수 있고, 핫플러그 컨트롤러(400)는 코어들(410, 420)의 작업부하 레벨을 나타내는 상태 천이 신호(STS)와 타이머(450)에서 제공되는 타임아웃 신호(TOUT) 및 인터럽트(ITR) 신호에 기초하여 코어들(510, 520) 중 적어도 하나를 선택적으로 비활성화(핫플러그 오프)시킬 수 있다. 즉 핫플러그 컨트롤러(400)에 포함되는 상태 머신(510)은 코어들(510, 520)의 작업부하 레벨을 나타내는 상태 천이 신호(STS)와 타이머(450)에서 제공되는 타임아웃 신호(TOUT) 및 인터럽트(ITR) 신호에 응답하여 코어들(510, 520)의 상태를 정의할 수 있고, 핫플러그 컨트롤러(400)는 상태 머신(410)에 의하여 정의되는 코어들(510, 520)의 상태에 따라 제1 인에이블 신호(EN1)와 제2 인에이블 신호(EN2)에 의하여 코어들(510, 520) 중 적어도 하나를 핫플러그 오프시킬 수 있다. 제제1 및 제2 인에이블 신호(EN1, EN2)는 제1 및 제2 코어들(510, 520) 각각에 연결되는 스위치들(530, 540)에 제공되어 스위치들(530, 540)을 온/오프 시킬 수 있다. 즉 핫플러그 컨트롤러(400)는 상태 머신(410)에 의하여 정의되는 코어들(510, 520)의 상태에 따라 코어들(510, 520)에 대하여 선택적으로 클럭 및 전압 게이팅을 수행하여 코어들(510, 520) 중 적어도 하나를 핫플러그 오프시킬 수 있다.
또한 핫플러그 컨트롤러(400)는 상태 머신(410)에 의하여 정의되는 코어들(510, 520)의 상태에 따라 레벨 제어 신호(LCTR)를 전압-클럭 공급기(700)에 제공할 수 있다. 전압-클럭 공급기(700)는 코어들(510, 520)의 상태에 따라 레벨 제어 신호(LCTR)에 응답하여 코어들(510, 520)에 제공되는 메인 클럭 신호(MCLK)의 주파수를 조절하고, 메인 전원 전압(MVDD)의 레벨을 조절할 수 있다. 코어들(510, 520) 중 제1 코어(510)가 핫플러그 오프된 상태인 경우, 핫플러그 컨트롤러(400)는 레벨 제어 신호(LCTR)를 통하여 메인 클럭 신호(MCLK)의 주파수를 감소시키고, 메인 전원 전압(MVDD)의 레벨을 낮출 수 있다. 코어들(510, 520) 중 제1 코어(510)가 다시 핫플러그 온되는 경우, 핫플러그 컨트롤러(400)는 레벨 제어 신호(LCTR)를 통하여 메인 클럭 신호(MCLK)의 주파수를 증가시키고, 메인 전원 전압(MVDD)의 레벨을 높일 수 있다.
도 9는 본 발명의 일 실시예에 따른 도 8의 전압-클록 공급기의 일 예를 나타내는 도면이다.
도 9를 참조하면, 전압-클록 공급기(700)는 전압 제어부(710) 및 클럭 제어부(720)를 포함할 수 있다.
전압 제어부(710)는 기준 전압 발생기(711) 및 레귤레이터(713)를 포함하여 구현될 수 있다. 이 경우, 핫플러그 컨트롤러(400)로부터 제공된 레벨 제어 신호(LCTR)는 기준 전압 발생기(711)로 입력되고, 기준 전압 발생기(711)는 레벨 제어 신호(LCTR)에 상응하도록 기준 전압을 조절하여 레귤레이터(713)에 제공할 수 있다. 레귤레이터(713)는 상기 조절된 기준 전압과 피드백되는 메인 전원 전압(MVDD)을 비교하여 레벨 제어 신호(LCTR)에 상응하는 크기의 메인 전원 전압(MVDD)을 코어들(510, 520)에 제공한다.
클럭 제어부(720)는 도 9에 도시된 바와 같이 위상 고정 루프(PLL)의 형태로 구현될 수 있다. 즉 클럭 제어부(720)는 위상/주파수 검출기(721), 차지 펌프(723), 루프 필터(725), 전압-제어 발진기(727) 및 주파수 분주기(729)를 포함하여 구성된다. 이 경우, 핫플러그 컨트롤러(400)로부터 제공된 레벨 제어 신호(LCTR)는 주파수 분주기(729)로 입력되고, 주파수 분주기(729)는 레벨 제어 신호(LCTR)에 상응하는 분주비에 의해 메인 클럭 신호(MCLK)를 분주하여 출력한다. 위상/주파수 검출기(721)는 기준 클럭 신호(RCLK)와 분주된 클럭 신호를 비교하여 업/다운 신호를 발생하고, 차지 펌프(723)는 업/다운 신호에 기초하여 제어 전압을 발생한다. 전압-제어 발진기(727)는 루프필터(725)에 의해 필터링된 제어 전압에 응답하여 메인 클럭 신호(MCLK)를 발생하여 코어들(510, 520)에 제공한다.
이와 같이, 전력 레벨의 변경을 위한 레벨 제어 신호(LCTR)를 이용하여 기준 전압 발생기(711)의 출력 및/또는 분주기(729)의 분주비를 조절하는 방식으로 코어들(510, 520)에 제공되는 메인 전원 전압(MVDD) 및/또는 메인 클록 신호(MCLK)의 주파수를 조절할 수 있다.
도 8의 멀티코어 프로세서 시스템(20)이 도 4의 멀티코어 프로세서 시스템(10)과 다른 점은 전압-클럭 공급기(700)와 스위치들(530, 540)을 더 포함한다는 점이다. 다른 구성요소들은 도 4의 멀티코어 프로세서 시스템의 대응하는 구성요소들과 동일하므로 이에 대한 상세한 설명은 생략한다.
도 10은 본 발명이 실시예에 따른 멀티코어 시스템을 포함하는 전자 기기의 일 예를 나타내는 블록도이다.
도 10을 참조하면, 전자 기기(800)는 멀티코어 프로세서(810), 메모리 장치(820), 저장 장치(830), 입출력 장치(850), 전원 장치(860) 및 전력 관리 장치(840)를 포함할 수 있다.일 실시예에서 전력 관리 장치(840)는 도 4의 핫플러그 컨트롤러(100), 타이머(150) 및 동적 작업부하 모니터(300)를 포함할 수 있다. 다른 실시예에서, 전력 관리 장치(840)는 핫플러그 컨트롤러(400), 타이머(450), 동적 작업부하 모니터(600), 및 전압-클럭 공급기(700)를 포함할 수 있다. 도 10에는 도시되지 않았지만, 전자 기기(800)는 비디오 카드, 사운드 카드, 메모리 카드, USB 장치와 데이터 통신을 수행하거나, 또는 다른 전자 기기들과 통신을 수행하기 위한 복수의 포트들을 더 포함할 수 있다. 전자 기기(800)는 컴퓨터, 노트북, 디지털 카메라, 비디오 캠코더, 휴대폰, 스마트폰, 피엠피(potable multimedia player; PMP), 피디에이(personal digital assistant; PDA), MP3 플레이어, 차량용 네비게이션 등일 수 있다.
멀티코어 프로세서(810)는 중앙 처리 유닛, 디지털 신호 처리 유닛, 마이크로 콘트롤러 등일 수 있으며, 전자 기기(800) 내부에서 특정 태스크를 수행할 수 있다. 이를 위하여, 멀티코어 프로세서(810)는 주변 구성요소 상호연결(peripheral component interconnect, PCI) 버스와 같은 확장 버스에 연결될 수 있다. 멀티코어 프로세서(810)는 도 1 내지 도 9를 참조하여 설명한 바와 같이 복수의 코어들을 포함할 수 있다. 전력 관리 장치(840)에 포함되는 핫플러그 컨트롤러는 상태 머신을 포함할 수 있고, 핫플러그 컨트롤러는 코어들)의 작업부하 레벨을 나타내는 상태 천이 신호(STS)와 타이머에서 제공되는 타임아웃 신호 및 인터럽트 신호에 기초하여 코어들 중 적어도 하나를 핫플러그 오프시키거나 핫플러그 오프된 코어를 다시 핫플러그 온 시킬 수 있다.
멀티코어 프로세서(810)는 적어도 하나 이상의 메모리 장치(820), 적어도 하나 이상의 저장 장치(830) 및 적어도 하나 이상의 입출력 장치(850) 등을 제어할 수 있다. 적어도 하나 이상의 메모리 장치(820)는 어드레스 버스, 제어 버스 및/또는 데이터 버스를 통하여 멀티코어 프로세서(810)에 연결될 수 있다. 예를 들어, 적어도 하나 이상의 메모리 장치(820)는 동적 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 정적 랜덤 액세스 메모리(Static Random Access Memory; SRAM), 또는 이피롬(Erasable Programmable Read-Only Memory; EPROM), 이이피롬(Electrically Erasable Programmable Read-Only Memory; EEPROM) 및 플래시 메모리 장치(flash memory device) 등과 같은 비휘발성 메모리 장치일 수 있다. 적어도 하나 이상의 저장 장치(830)는 솔리드 스테이트 드라이브(solid state drive), 하드 디스크 드라이브 및 씨디롬(CD-ROM) 등과 같은 저장 장치일 수 있다. 적어도 하나 이상의 입출력 장치(850)는 키보드, 키패드, 터치 패드, 마우스 등과 같은 입력 장치 및 프린터, 디스플레이, 스피커 등과 같은 출력 장치일 수 있다. 전원 장치(860)는 전자 기기(800)에 요구되는 동작 전압을 공급할 수 있다.
이상 본 발명의 실시예들을 참조하여 멀티 코어 프로세서의 핫플러깅 방법 및 멀티코어 프로세서에 대하여 설명하였지만, 상기에서 설명된 구조 등은 예시적인 것들로서, 본 발명의 기술적 사상을 벗어나지 않는 범위에서 해당 기술 분야에서 통상의 지식을 가진 자에 의하여 다양하게 수정 및 변경될 수 있다.
본 발명의 실시예들은 복수의 코어들을 포함하는 멀티코어 프로세서를 구비하는 전자 기기에 다양하게 적용될 수 있다. 예들 들어, 본 발명의 실시예들은 컴퓨터, 노트북, 디지털 카메라, 비디오 캠코더, 휴대폰, 스마트폰, 피엠피, 피디에이, MP3 플레이어, 차량용 네비게이션, 비디오폰, 감시 시스템, 추적 시스템, 동작 감지 시스템, 이미지 안정화 시스템 등에 적용될 수 있을 것이다.
상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (10)

  1. 복수의 코어들을 구비하는 멀티코어 프로세서, 상기 멀티코어 프로세서에 연결되는 핫플러그 컨트롤러 및 상기 멀티코어 프로세서에 연결되는 동적 작업부하 모니터를 포함하는 멀티코어 프로세서 시스템의 핫 플러깅 방법으로서,
    상기 동적 작업부하 모니터가, 활성화상태에 있는 복수의 코어들 각각의 동작 파라미터를 모니터링하는 단계;
    상기 모니터링된 동작 파라미터를 나타내는 상태 천이 신호에 기초하여, 상기 핫플러그 컨트롤러가, 상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화시키는 단계; 및
    상기 복수의 코어들 중 상기 비활성화된 코어를 제외한 나머지 코어들의 동작 파라미터의 모니터링에 기초하여, 상기 핫플러그 컨트롤러가 상기 비활성화된 코어를 선택적으로 다시 활성화시키는 단계를 포함하고,
    상기 복수의 코어들은 제1 코어 및 제2 코어를 포함하고,
    상기 동적 작업부하 모니터는,
    상기 제1 코어의 제1 동작 파라미터에 기초하여 상기 제1 코어에 대한 제1 작업 부하를 산출하는 제1 연산부;
    상기 제2 코어의 제2 동작 파라미터에 기초하여 상기 제2 코어에 대한 제2 작업 부하를 산출하는 제2 연산부;
    상기 제1 작업 부하와 상기 제2 작업 부하를 비교하여 더 작은 작업 부하의 코어를 선택하는 선택부;
    상기 선택된 코어의 작업부하를 업 기준 레벨 및 다운 기준 레벨과 비교하여 제1 비교 신호 및 제2 비교 신호를 제공하는 비교부;
    상기 제1 비교 신호 및 상기 제2 비교 신호를 디코딩하여 상기 상태 천이 신호로 제공하는 디코더를 포함하는 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  2. 제1항에 있어서,
    상기 동작 파라미터는 동작 전압 또는 동작 주파수인 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  3. 제1항에 있어서,
    상기 복수의 코어들 중 적어도 하나를 선택적으로 비활성화시키는 단계는,
    상기 제1 코어의 상기 제1 작업 부하와 상기 제2 코어의 상기 제2 작업 부하의 레벨들을 비교하여 더 작은 레벨의 상기 제1 작업 부하의 상기 제1 코어를 선택하는 단계; 및
    상기 선택된 제1 코어의 상기 제1 동작 파라미터 레벨이 일정 기준 시간 동안 상기 다운 기준 레벨 미만인지 여부에 따라 상기 선택된 제1 코어를 선택적으로 비활성화시키는 단계를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  4. 제3항에 있어서,
    상기 선택된 상기 제1 코어의 상기 제1 작업 부하의 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 다운 기준 레벨 미만인 경우에는 상기 선택된 제1 코어를 비활성화시키고,
    상기 선택된 제1 코어의 상기 제1 작업 부하의 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 다운 기준 레벨 이하가 아닌 경우에는 다시 상기 제1 코어의 상기 제1 작업 부하와 상기 제2 코어의 상기 제2 작업 부하의 레벨들을 비교하여 더 작은 레벨의 작업 부하의 코어를 선택하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  5. 제3항에 있어서,
    상기 비활성화된 제1 코어를 선택적으로 다시 활성화시키는 단계는,
    상기 비활성화되지 않은 상기 제2 코어의 상기 제2 작업 부하를 모니터링하는 단계; 및
    상기 제2 코어의 상기 제2 작업 부하의 레벨이 일정 시간 동안 상기 업 기준 레벨을 초과하는지 여부에 따라 상기 비활성화된 제1 코어를 선택적으로 다시 활성화시키는 단계를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  6. 제5항에 있어서,
    상기 비활성화되지 않은 제2 코어의 상기 제2 작업 부하의 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하는 경우에는 상기 비활성화된 제1 코어를 다시 활성화시키고,
    상기 비활성화되지 않은 제2 코어의 상기 제2 작업 부하의 레벨이 상기 일정 기준 시간 동안 연속적으로 상기 업 기준 레벨을 초과하지 않는 경우에는 상기 비활성화되지 않은 제2 코어의 상기 제2 작업 부하를 다시 모니터링하는 것을 특징으로 하는 멀티코어 프로세서 시스템의 핫 플러깅 방법.
  7. 복수의 코어들을 구비하는 멀티코어 프로세서;
    상기 복수의 코어들 각각의 동작 파라미터에 기초한 각각의 작업 부하에 따른 상태 천이 신호를 생성하는 동적 작업부하 모니터;
    상기 상태 천이 신호와 타임아웃 신호 및 인터럽트 신호에 기초하여 상기 복수의 코어들 중 적어도 하나의 코어를 선택적으로 비활성화시키는 핫플러그 컨트롤러; 및
    상기 타임아웃 신호 및 상기 인터럽트 신호를 상기 핫플러그 컨트롤러에 제공하는 타이머를 포함하고,
    상기 복수의 코어들은 제1 및 제2 코어를 포함하고,
    상기 동적 작업부하 모니터는,
    상기 제1 코어의 제1 동작 파라미터에 기초하여 상기 제1 코어에 대한 제1 작업 부하를 산출하는 제1 연산부;
    상기 제2 코어의 제2 동작 파라미터에 기초하여 상기 제2 코어에 대한 제2 작업 부하를 산출하는 제2 연산부;
    상기 제1 작업 부하와 상기 제2 작업 부하를 비교하여 더 작은 작업 부하의 코어를 선택하는 선택부;
    상기 선택된 코어의 작업 부하를 업 기준 레벨 및 다운 기준 레벨과 비교하여 제1 비교 신호 및 제2 비교 신호를 제공하는 비교부;
    상기 제1 비교 신호 및 상기 제2 비교 신호를 디코딩하여 상기 상태 천이 신호로 제공하는 디코더를 포함하는멀티코어 프로세서 시스템.
  8. 제7항에 있어서,
    상기 핫플러그 컨트롤러는 상기 상태 천이 신호, 상기 타임아웃 신호 및 상기 인터럽트 신호에 기초하여 상기 제1 코어 및 상기 제2 코어 각각의 상태를 정의하는 상태 머신을 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  9. 제7항에 있어서,
    상기 핫플러그 컨트롤러는 상기 제1 코어가 비활성화되고 상기 제2 코어의 작업 부하가 일정 기준 시간 동안 상기 업 기준 레벨을 초과하는 경우, 상기 비활성화된 제1 코어를 다시 활성화시키는 것을 특징으로 하는 멀티코어 프로세서 시스템.
  10. 제9항에 있어서, 상기 선택부는,
    상기 제1 작업 부하와 상기 제2 작업 부하를 비교하여 비교 신호를 출력하는 비교기;
    상기 제1 작업 부하와 상기 제2 작업 부하 중 어느 하나의 레벨이 0인 경우 로우 레벨이 되는 레벨 신호를 출력하는 레벨 감지기;
    상기 비교 신호와 상기 레벨 신호에 대하여 배타적 노어 연산을 수행하여 선택 신호를 제공하는 배타적 노어 게이트; 및
    상기 선택 신호에 응답하여 상기 제1 작업 부하와 상기 제2 작업 부하 중 하나를 선택하는 멀티플렉서를 포함하는 것을 특징으로 하는 멀티코어 프로세서 시스템.
KR1020110014863A 2011-02-21 2011-02-21 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템 KR101770587B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110014863A KR101770587B1 (ko) 2011-02-21 2011-02-21 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템
US13/396,617 US8880924B2 (en) 2011-02-21 2012-02-15 Hot-plugging of multi-core processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110014863A KR101770587B1 (ko) 2011-02-21 2011-02-21 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템

Publications (2)

Publication Number Publication Date
KR20120095507A KR20120095507A (ko) 2012-08-29
KR101770587B1 true KR101770587B1 (ko) 2017-08-24

Family

ID=46653755

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110014863A KR101770587B1 (ko) 2011-02-21 2011-02-21 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템

Country Status (2)

Country Link
US (1) US8880924B2 (ko)
KR (1) KR101770587B1 (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101930752B1 (ko) * 2012-02-24 2018-12-19 삼성전자 주식회사 멀티 코어를 포함하는 전자 기기의 전력 제어 방법 및 장치
EP3151085B1 (en) 2012-08-30 2018-07-11 Huawei Device (Dongguan) Co., Ltd. Method, apparatus and computer program product for controlling central processing unit
US9619229B2 (en) 2012-12-27 2017-04-11 Intel Corporation Collapsing of multiple nested loops, methods and instructions
CN104156267B (zh) 2013-05-14 2017-10-10 华为技术有限公司 任务分配方法、任务分配装置及片上网络
EP2849024A1 (en) * 2013-09-16 2015-03-18 ST-Ericsson SA Power consumption management system and method
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US9348380B2 (en) * 2013-12-28 2016-05-24 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for memory array
KR102169692B1 (ko) * 2014-07-08 2020-10-26 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 동적 전력 관리 방법
CN104375881B (zh) * 2014-10-28 2017-11-14 江苏中科梦兰电子科技有限公司 龙芯处理器的主核热插拔方法
US9946327B2 (en) * 2015-02-19 2018-04-17 Qualcomm Incorporated Thermal mitigation with power duty cycle
CN106155801B (zh) * 2015-03-27 2019-06-28 华为技术有限公司 一种设备迁移的方法及资源管理中心
KR101655027B1 (ko) * 2015-04-22 2016-09-06 한양대학교 산학협력단 전자 기기의 유효 작업부하 결정 방법 및 장치
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
KR20160148348A (ko) 2015-06-16 2016-12-26 한국전자통신연구원 멀티코어 시스템의 부하특성 기반 핫플러그 제어장치 및 제어방법
US10117196B2 (en) * 2015-08-26 2018-10-30 Qualcomm Incorporated Dynamically configurable apparatus for operating within the current capabilities of the power source
US9826485B2 (en) 2015-11-20 2017-11-21 Symbol Technologies, Llc Power source hot swap mode
KR102597925B1 (ko) * 2015-11-27 2023-11-06 삼성전자주식회사 전자 시스템 및 전자 시스템의 동작 방법
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
CN107977269B (zh) * 2017-11-06 2020-12-01 东软集团股份有限公司 一种报文转发系统中的超时事件处理方法、装置及设备
CN115391021A (zh) * 2021-05-24 2022-11-25 北京灵汐科技有限公司 核心控制方法及装置、处理核心、系统、电子设备、介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302059A (ja) * 2005-04-22 2006-11-02 Hitachi Ltd 複合型計算機装置およびその管理方法
US20100037038A1 (en) * 2008-08-06 2010-02-11 International Business Machines Corporation Dynamic Core Pool Management
US20100153763A1 (en) * 2008-12-11 2010-06-17 Kapil Sood Method and apparatus to modulate multi-core usage for energy efficient platform operations

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7584369B2 (en) * 2006-07-26 2009-09-01 International Business Machines Corporation Method and apparatus for monitoring and controlling heat generation in a multi-core processor
US7856562B2 (en) * 2007-05-02 2010-12-21 Advanced Micro Devices, Inc. Selective deactivation of processor cores in multiple processor core systems
EP2058725A3 (en) * 2007-06-11 2015-07-22 Mediatek Inc. Method of and apparatus for reducing power consumption within an integrated circuit
US8296773B2 (en) * 2008-06-30 2012-10-23 International Business Machines Corporation Systems and methods for thread assignment and core turn-off for integrated circuit energy efficiency and high-performance
US8443209B2 (en) * 2009-07-24 2013-05-14 Advanced Micro Devices, Inc. Throttling computational units according to performance sensitivity
US9563250B2 (en) * 2009-12-16 2017-02-07 Qualcomm Incorporated System and method for controlling central processing unit power based on inferred workload parallelism
US8381006B2 (en) * 2010-04-08 2013-02-19 International Business Machines Corporation Reducing power requirements of a multiple core processor
US20130151877A1 (en) * 2010-10-19 2013-06-13 Rachid M. Kadri Systems and methods for predictive control of power efficiency
US8788866B2 (en) * 2011-04-25 2014-07-22 Qualcomm Incorporated Method and system for reducing thermal load by monitoring and controlling current flow in a portable computing device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006302059A (ja) * 2005-04-22 2006-11-02 Hitachi Ltd 複合型計算機装置およびその管理方法
US20100037038A1 (en) * 2008-08-06 2010-02-11 International Business Machines Corporation Dynamic Core Pool Management
US20100153763A1 (en) * 2008-12-11 2010-06-17 Kapil Sood Method and apparatus to modulate multi-core usage for energy efficient platform operations

Also Published As

Publication number Publication date
KR20120095507A (ko) 2012-08-29
US8880924B2 (en) 2014-11-04
US20120216064A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
KR101770587B1 (ko) 멀티코어 프로세서의 핫 플러깅 방법 및 멀티코어 프로세서 시스템
KR101242893B1 (ko) 프로세서 슬리프 및 웨이크 이벤트들에 대한 시스템에서의 하드웨어 자동 성능 상태 천이
US9671854B2 (en) Controlling configurable peak performance limits of a processor
US9235252B2 (en) Dynamic balancing of power across a plurality of processor domains according to power policy control bias
KR20130066398A (ko) 기능블럭을 포함하는 SoC의 클락 제어 방법, 이를 구현한 SoC 및 이를 포함하는 반도체 시스템
US10761579B2 (en) Supercapacitor-based power supply protection for multi-node systems
TW200813842A (en) Method and apparatus for providing for detecting processor state transitions
JP2011076608A (ja) プロセッサを含む装置の電力管理方法
KR100897767B1 (ko) 데이터 유지 시간을 늘릴 수 있는 마이크로 컨트롤러 유닛및 방법
WO2019094108A1 (en) Dynamic clock control to increase efficiency in the memory subsystem
JP6409218B2 (ja) 電力効率の優れたプロセッサアーキテクチャ
JP2011203804A (ja) マイクロコンピュータ及びマイクロコンピュータの制御方法
JP2016212907A (ja) 電力効率の優れたプロセッサアーキテクチャ
JP2017021811A (ja) 電力効率の優れたプロセッサアーキテクチャ
TW201541237A (zh) 電子裝置及其系統功率管理方法

Legal Events

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