KR101072864B1 - 에너지 절약형 멀티 코어 프로세서 - Google Patents

에너지 절약형 멀티 코어 프로세서 Download PDF

Info

Publication number
KR101072864B1
KR101072864B1 KR1020090075977A KR20090075977A KR101072864B1 KR 101072864 B1 KR101072864 B1 KR 101072864B1 KR 1020090075977 A KR1020090075977 A KR 1020090075977A KR 20090075977 A KR20090075977 A KR 20090075977A KR 101072864 B1 KR101072864 B1 KR 101072864B1
Authority
KR
South Korea
Prior art keywords
processor cores
task
processor
clock frequency
voltage level
Prior art date
Application number
KR1020090075977A
Other languages
English (en)
Other versions
KR20100026989A (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 한림대학교 산학협력단
Publication of KR20100026989A publication Critical patent/KR20100026989A/ko
Application granted granted Critical
Publication of KR101072864B1 publication Critical patent/KR101072864B1/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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/329Power saving characterised by the action undertaken by task scheduling
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

에너지 절약형 멀티 코어 프로세서가 제공된다. 상기 멀티 코어 프로세서는, 병렬로 작업을 처리하도록 구성된 복수개의 프로세서 코어; 및 상기 복수개의 프로세서 코어들에 적어도 하나의 전압 레벨 및 클럭 주파수를 공급하도록 구성된 컨트롤러를 구비하고, 상기 작업을 실행하기 위하여 소정 개수의 프로세서 코어를 선택하고 선택되지 않은 프로세서 코어들은 비선택 상태로 두고, 사용가능한 전압 레벨 및 클럭 주파수 중에서 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나를 선택하여 상기 선택된 프로세서 코어들이 작업 데드라인 이내에 작업을 완료하도록 하는 것을 특징으로 한다.
멀티 코어 프로세서, 에너지 절약

Description

에너지 절약형 멀티 코어 프로세서{ENERGY-EFFICIENT MULTI-CORE PROCESSOR}
본 발명은 멀티 코어 프로세서에 관한 것으로서, 특히 에너지를 절감할 수 있는 에너지 절약형 멀티 코어 프로세서에 관한 것이다.
최근 휴대형, 모바일 장치(핸드폰, 랩톱, PDA, PMP 등)의 사용이 널리 증가하고 있는데, 이는 사람들의 라이프 스타일 및 행동에 중요한 영향을 끼치고 있다. 이러한 모바일 장치들이 널리 사용됨에 따라 중앙처리장치(CPUs)가 에너지 절약형으로 동작할 수 있도록 하는 기술을 발전시키는데 많은 노력이 이루어지고 있다. 모바일 컴퓨팅 환경에서의 제한적인 배터리 용량으로 인하여 이러한 기술은 다양한 모바일 장치의 능력 및 생산성의 개선을 도모하게 되었다.
전력 소비를 줄이기 위한 종래의 기술은 동적 전력 관리(dynamic power management, DPM) 및 동적 전압 스케일링(dynamic voltage scaling, DVS)을 포함한다. 도 1(A)는 프로세서의 전형적인 비효율적 동작을 나타낸 예로서, 작업(T1)은 시간(te)에서 종료되는데 시간(te)가 지난 후에도 작업 데드라인(td)까지는 전력 또는 동작 클럭이 프로세서에 계속 공급되고 있다. DPM에서는, 프로세서를 주기적으로 모니터링하여 프로세서에 의해 작업이 수행되고 있는지를 체크한다. 프로세서가 어떠한 작업도 수행하지 않고 있는 것으로 판단되는 경우(즉, "아이들(idle)" 상태인 경우), 불필요한 전력 소모를 줄이기 위하여 프로세서의 전원 공급이 차단된다. 도 1(B)에 나타낸 바와 같이, 작업이 종료된 후 시간(te)에 도달하면 전력 또는 동작 클럭의 공급을 중단하여 아이들 상태 동안(te와 td 사이) 불필요한 전력 소모를 중지하게 된다.
전력 소모를 줄이기 위한 또 다른 종래의 기술은 DVS인데, 이는 프로세싱 부하(processing load)에 기초하여 프로세서에 공급되는 전압 레벨(voltage lever) 또는 클럭 주파수(clock frequency(를 변화시키는 것이다. 일반적으로 DVS는 주어진 작업을 입력 전압 또는 클럭 주파수에 비례하는 속도로 처리할 수 있도록 하는데, 프로세서는 입력 전압 또는 클럭 주파수가 증가함에 따라 전력을 그만큼 더 소모하게 된다. 도 1(C)는 DVS 기술에 의하여 작업(T1)이 작업 데드라인(td) 안에 완료될 수 있는 경우 입력 전압 또는 클럭 주파수를 반으로 분할함으로써 프로세서의 전력 소모를 낮출 수 있다는 것을 나타낸 것이다.
그러나, 전술한 바와 같은 DPM 및 DVS 전력 관리 기술은 주로 "단일-코어(single-core)" 프로세서 시스템에 맞추어진 것이라는 점을 유의해야 한다. 멀티(또는 멀티 코어) 프로세서 시스템의 사용이 급속히 증가함에 따라, 이러한 복잡 한 멀티 코어 프로세서 구조에서 구현될 수 있는 효율적인 전력 관리 구조가 요망되고 있다.
본 발명은 상기한 바와 같은 한계점을 감안하여 안출된 것으로서, 멀티 코어 프로세서 환경에서 전력 소비를 줄일 수 있는 방법 및 장치를 제공하는 것을 목적으로 한다.
멀티프로세서 환경에서 전력 소비를 줄이기 위한 다양한 시스템 및 방법의 실시예들이 개시된다. 일 실시예에 있어서, 멀티 코어 프로세서는, 병렬로 작업을 처리하도록 구성된 복수개의 프로세서 코어; 및 상기 복수개의 프로세서 코어들에 적어도 하나의 전압 레벨 및 클럭 주파수를 공급하도록 구성된 컨트롤러를 포함한다. 여기에서, 작업을 수행하기 위하여 소정 개수의 프로세서 코어가 선택될 수 있다. 선택되지 않은 프로세서 코어들은 비선택 상태로 되며, 사용가능한 전압 레벨 및 클럭 주파수 중에서 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나가 선택되어 선택된 프로세서 코어들이 작업 데드라인 이내에 작업을 완료하도록 한다.
상기의 구성은 상세한 설명에서 상세하게 설명되는 실시예를 간단하게 요약한 것이다. 이는 본 발명의 특징이나 핵심 사항을 요약하거나 본 발명의 범위를 결정하기 위한 것이 아니다.
본 발명에 의하면, 멀티 코어 프로세서 환경에서 전력 소비를 줄일 수 있는 방법 및 장치를 제공할 수 있다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예를 설명한다. 도면에서 특별히 다른 설명이 없는 한 유사한 기호는 유사한 구성을 나타낸다. 본 명세서의 도면, 특허청구범위 및 상세한 설명에서 설명되는 실시예들은 한정적인 것은 아니다. 본 명세서에 개시되는 발명의 본질을 벗어나지 않고 여러가지 형태의 실시예가 사용될 수 있다. 본 명세서의 상세한 설명 및 도면에 설명되는 구성 요소들은 여러 가지 형태로 재배치, 대치, 결합 설계될 수 있음을 유의해야 한다.
도 2는 본 발명에 의한 실시예들이 적용될 수 있는 멀티 코어 프로세서의 환경의 일실시예를 나타낸 것이다. 도 2에 도시한 바와 같이, 예컨대 멀티 코어 프로세서 환경은 n개의 프로세서 코어들(200,202,...20n)을 포함할 수 있다. 일부 실시예에서는, 각 프로세서 코어에는 동일한 레벨의 전압 및/또는 동일한 클럭 주파수가 공급될 수 있다. 예컨대, 동일한 전압 또는 주파수가 작업 데드라인까지 계속적으로 공급될 수 있다. 전압 레벨 및/또는 클럭 주파수는 프로세서 코어들(200,202,...20n)에 제공될 수 있는 사용가능한 전압 레벨 및/또는 클럭 주파수들의 그룹으로부터 선택될 수 있다. 예컨대, 전압 컨트롤러(210)가 사용가능한 전압 레벨 중에서 하나의 전압 레벨을 선택하여 선택된 전압 레벨을 각 프로세서 코 어들에게 공급할 수 있다. 마찬가지로, 예컨대 주파수 컨트롤러(220)가 사용가능한 클럭 주파수로부터 하나의 클럭 주파수를 선택하여 선택된 주파수를 각 프로세서 코어에 공급할 수 있다. 전압 컨트롤러(210) 및 주파수 컨트롤러(220)는 예컨대 주어진 작업에 대한 실행 데드라인(execution deadline), 작업 실행에 관련된 코어의 갯수, 코어에 대한 전력 소비와 전압 레벨과의 관계, 작업 완료 속도와 작업 완료에 관련된 코어의 갯수와의 관계 및 적절한 전압 레벨 및/또는 주파수를 선택하는데 필요한 기타 조건 등을 고려할 수 있다.
도 3을 참조하면, 2개의 공지의 멀티 코어 프로세서를 사용하여 프로세서 코어당 클럭 주파수와 전력 소비와의 상호 관계를 나타내었다. Intel
Figure 112009050235356-pat00001
XScale
Figure 112009050235356-pat00002
및 IBM
Figure 112009050235356-pat00003
PPC 405LP
Figure 112009050235356-pat00004
은 DVS가 가능한 멀티 프로세서 코어를 가진 것으로 알려져 있다. DVS가 적용되면, 사용가능한 전압 레벨 또는 클럭 주파수는 연속적이 아니라 이산적(discrete)으로 된다. 예컨대, Intel
Figure 112009050235356-pat00005
XScale
Figure 112009050235356-pat00006
프로세서는 도 3에 도시한 바와 같이 150MHz에서 1000MHz 범위의 5개의 클럭 주파수가 공급될 수 있으며, IBM
Figure 112009050235356-pat00007
PPC 405LP
Figure 112009050235356-pat00008
의 경우에는 클럭 주파수로서 4개의 주파수(즉, 33,100,266 및 333 MHz)가 공급될 수 있다. 각각의 사용가능 주파수에 대해서, 예컨대 도 3은 연산 주기(computation cycle)에 대한 프로세서 코어당 전력 소비율을 나타낸 것이다. IBM
Figure 112009050235356-pat00009
PPC 405LP
Figure 112009050235356-pat00010
는 전력 소비와 33MHz~266MHz 범위의 주파수 사이의 관계에서 오목 상승 모양(concave up shape)(즉, 관계)를 가지고, 100MHz~333MHz 범위에서는 오목 하강(concave down shape) 모양을 가진다는 점을 유의해야 한다.
다음으로, 작업 실행에 관련되는 프로세서 코어의 갯수와 작업 실행 속도 사이의 관계에 대해서 설명한다. 예를 들어, 주어진 작업이 Moving Picture Expert-2(MPEG-2) 또는 H.264 구조와 같은 압축 방식에 의해 비디오 데이터를 압축하는 것일 수 있다. 일반적으로 이러한 압축 기술은 일련의 이미지 프레임(image frame)을 사용하는데, 각 이미지 프레임은 필요한 계산 시간이 다양하다. 예컨대, 각각의 비디오 프레임을 인코드 또는 디코드하기 위해서, 코어에 공급되는 클럭 주파수가 증가하는 만큼 각 프로세서 코어는 더 빨리 주어진 작업을 처리할 수 있게 된다. 다시 말하면, 주어진 작업을 완료하는데 필요한 시간은 공급 클럭 주파수에 의해 필요한 연산 주기를 분할하는 것에 의해 결정될 수 있다. 그러나, 주어진 작업은 소정의 "작업 데드라인(task deadline)" 안에 완료되어야 한다. 예컨대, National Television Standard Committee(NTSC) Digital Versatile Disc(DVD) 퀄리티 MPEG-2 비디오는 대략 초당 30 또는 24 프레임을 검색해야 하며 따라서 작업 데드라인은 대략 33.3ms~41.7ms이어야 한다. 작업 데드라인은 작업의 종류에 따라 다를 수 있으므로, 필요한 연산 주기 또한 다양하다. 비디오와 관련된 계산의 예는 비디오 영상의 디콤포지션(decomposition), 모션 예측(motion predictions) 및 코스 그레인드 구현(coarse grained implementation) 및 파인 그레인드 구현(fine grained implementation)에서의 각 이미지 영상의 디스조인트 파티션(disjoint partition) 등을 포함할 수 있다. 멀티 코어 프로세서 환경에서 필요한 계산은 복수개의 코어에 의해 병렬로 수행될 수 있으며 또한 계산 속도의 상승은 작업의 특 성에 따라 다르다.
작업 특성에 따른 4가지 속도 상승(speedup) 모델의 일예가 도 4에 도시되어 있다. 첫번째 2개의 속도 상승 모델은 공유 메모리(shared memory_를 갖는 Silicon Graphics Chanllenge
Figure 112009050235356-pat00011
멀티프로세서에서 병렬 MPEG-2 비디오 작업 수행에 의해 생성된 실험 데이터를 나타낸 것이다. MPEG-헤비(MPEG-heavy)로 나타낸 첫번째 모델은 1408×960 해상도의 비디오 코딩/디코딩 작업이고, MPEG-라이트(MPEG-light)로 나타낸 두번째 모델은 352×240 해상도의 비디오 코딩/디코딩 작업이다.
도 4에 나타낸 바와 같이, 이들 2개의 모델들은 관련된 병렬-코어의 갯수와 작업 수행 속도 상승의 관계에 있어서 거의 선형(linear) 관계를 가진다. 서브리니어(sublinear)와 콘케이브(concave)로 표시한 다른 2개의 속도 상승 모델은 병렬 실행의 오버헤드(overhead)를 고려하기 위하여 합성된 것이다. 병렬 수행의 오버헤드는 예컨대, 불균형 서브 작업의 분산, 서브 작업의 분산에 필요한 추가적인 연산, 작업 실행에 관련되는 프로세서 코어의 갯수의 증가에 따른 작업 실행의 속도 상승을 계산시의 통신 및 동기화 등과 같은 것을 포함할 수 있다.
도 4에 나타낸 서브리니어(sublinear) 모델은 작업 수행의 속도 상승은 분할된 작업에 할당된 코어의 갯수에 비례하는 속도 상승 모델을 나타낸다. 이러한 예에서, 병렬 처리의 오버헤드는 전체 계산 용량의 40%로 가정한다. 즉, n-코어가 작업의 병렬 처리에 관련된다면, 작업 완료의 속도 상승은 0.6×n(n>1)이다.
도 4에 나타낸 마지막 모델은 콘케이브(concave) 모델이다. 콘케이브 모델 은 작업 완료의 속도 상승은 도 4에 나타낸 바와 같이 작업의 병렬 처리에 관련된 코어 갯수의 제곱근(square root)에 비례할 수 있음을 보여준다.
도 5는 전력 절감 기술의 일실시예를 설명하기 위한 도면이다. 도 5에 나타낸 바와 같이, X,Y,Z축은 실행 시간(execution time), 할당된 프로세서 코어의 갯수 및 공급 전압 또는 주파수를 각각 나타낸다. 도 5(A)는 작업이 분할되지 않은 상태이며 복수개의 프로세스 코어에 할당되어 있지만 하나의 프로세스 코어에서만 수행된다. 데드라인 내에 작업을 완료하기 위해서 상대적으로 높은 전압 레벨 또는 클럭 주파수가 동작하고 있는 프로세스 코어에 공급되어야 함을 유의해야 한다. 도 5(B)는 작업이 분할되어 복수개의 n개의 프로세서 코어에 할당된 병렬 처리의 장점을 나타낸 것이다.
예컨대, 도 5(B)에 나타낸 바와 같이, 복수개의 프로세스 코어가 전체 작업을 완료하기 위해 병렬적으로 필요한 연산을 수행하므로 작업은 보다 짧은 시간내에 완료될 수 있다. 병렬 처리에 의한 이러한 신속한 작업 완료는 할당된 코어에 공급되는 전압 레벨 또는 클럭 주파수를 낮출 수 있도록 해준다. 예컨대, 도 5(C)는 주어진 작업 데드라인 이내에 작업이 완료되는 한, 보다 낮은 전압 레벨 또는 클럭 주파수가 선택될 수 있음을 나타내는 도면이다. 결론적으로, 작업 수행에 보다 많은 프로세서 코어가 관련될수록, 작업 완료 시간은 단축된다.
또한, 작업 완료 시간이 짧아지면 코어에 공급되는 전압 레벨 또는 클럭 주파수를 낮출 수 있으므로 작업 완료에 필요한 전력 소비량을 감소시킬 수 있게 된다. 다음으로, 다수의 프로세서 코어(작업 수행에 연관되는)와 전압 레벨 또는 클 럭 주파수의 조합이 작업 완료에 필요한 전체 전력 소비를 감소시킬 수 있다는 것을 나타내는 수학식의 예를 설명한다.
예컨대, 프로세서 코어의 실행 속도(execution speed)는 하기의 식 (1)로 표시되는 바와 같이, 전압 레벨 또는 클럭 주파수에 선형 비례할 수 있다.
실행 속도(execution speed) ∝ (전압 레벨)1 또는 (클럭 주파수)1 (1)
또한, 각 코어의 전력 소비는 다음식 (2)로 나타낸 바와 같이, 전압 레벨 또는 클럭 주파수에 지수 형태로 (exponential manner) 증가할 수 있다.
코어의 전력 소비 ∝ (전압 레벨)X 또는 (클럭 주파수)X (2)
(X는 2이상)
멀티 코어 환경에서는, 주어진 작업은 분할되어 복수개의 코어에 할당되는데, 각각의 코어는 주어진 작업을 하나의 코어가 전체 작업을 수행할 때와 같은 속도로 처리할 필요는 없다. 따라서, 할당된 코어에 공급되는 전압 레벨 또는 클럭 주파수를 감소시킬 수 있으며 따라서 전압 레벨 또는 클럭 주파수를 낮추는 것은 지수 비례 형태로 전력 소비를 감소시킬 수 있게 된다. 예컨대, 도 5(B)에 도시한 바와 같이, 작업이 분할되어 2개의 코어에 할당된 경우, 동일한 전압 레벨 또는 클럭 주파수에서 작업은 단일 코어에 비해 2배 빨리 완료될 수 있다. 2개의 코어에 공급되는 전압 레벨 또는 클럭 주파수가 반으로 감소하면, 하나의 코어의 실행 속도는 전압 레벨 또는 클럭 주파수에 선형 비례하기 때문에 작업은 단일 코어에서와 같은 시간 내에 완료될 수 있다. 전압 레벨 또는 클럭 주파수를 낮추는 것은 코어 의 전력 소비를 (1/2)X 만큼 감소시킬 수 있다. X가 2라고 가정하면, 각 코어는 단일 코어가 작업을 완료하는데 소요되는 전력의 1/4을 소비하게 된다. 작업 완료에 2개의 코어가 관련되므로, 2개의 코어에 의해 소비되는 전체 에너지는 반으로 감소할 수 있다. 전술한 예에서 몇가지 가정을 전제로 하는데, 예컨대 전력 소비와 전압 레벨 또는 클럭 주파수 사이의 지수 관계, 사용 가능한 전압 레벨 또는 클럭 주파수의 연속성 및 병렬 처리에 의해 발생하는 오버헤드의 무시 등이다.
실제, 전술한 가정은 실제적이지는 않을 수 있다. 전술한 바와 같이, 멀티 코어 프로세서는 전력 소비와 공급 전압 또는 클럭 주파수 사이의 명확한 관계를 나타내지 않을 수 있다. 또한, 멀티 코어 프로세서에 공급될 수 있는 전압 레벨 또는 클럭 주파수는 연속적이 아니라 이산적(discrete)일 수 있다. 또한, 병렬 처리는 오버헤드를 동반할 수도 있다.
일실시예로서, "루즈 스케줄링(loose scheduling)"이라고 하는 방식이 제공된다. 루즈 스케줄링은 작업을 수행하는 데 관련된 프로세서 코어의 갯수와 전압 레벨 또는 클럭 주파수가 작업 완료시까지 고정(불변)이라는 것을 가정한다. 예컨대, 도 6은 루즈 스케줄링 기술의 일예를 설명하기 위한 흐름도이다. 루즈 스케줄링은 블록(600)에서 시작하고 블록(602)에서 n을 1로 한다. 블록(604)에서 n개의 프로세서 코어(들)이 데드라인 이내에 주어진 작업을 완료하기 위한 최저 전압 레벨 또는 클럭 주파수가 계산된다. 블록(606)에서, n개의 프로세서 코어(들)이 작업을 수행할 때 작업을 완료하는데 필요한 전체 전력 소비량이 계산된다. 계산된 전력 소비량은 n개의 프로세서 코어들과 관련하여 저장된다. 블록(608)에서, n이 N에 도달했는지를 결정하는데, N은 멀티 코어 프로세서 환경에서 제공되는 코어의 갯수를 나타낸다. 만약 n이 N에 도달했으면, 루즈 스케줄링은 블록(612)로 넘어간다. 그렇지 않으면, 루즈 스케줄링은 블록(610)으로 가서 n을 1씩 증가시키고 블록(604)로 되돌아간다. 도 6에 나타낸 바와 같이, 블록(604)~블록(608)은 n이 N이 될 때까지 반복하게 된다. 일예로서, 루즈 스케줄링이 블록(612)로 넘어 가면, n개의 각각의 프로세서 코어들에 대하여, 작업 데드라인 이내에 작업을 완료하기 위한 n개의 프로세서 코어들의 최저 전압 레벨 또는 클럭 주파수 및 전체 소비 전력량이 저장되어 있다. 블록(612)에서, n은 작업을 완료하기 위한 최저 전력 소비량을 갖는 것으로 선택된다. 루즈 스케줄링은 블록(614)에서 주어진 작업을 n개의 프로세서 코어에 할당하고 N-n개의 "할당되지 않은" 또는 "선택되지 않은" 프로세서 코어들의 전원을 차단(turn off)시킨다. 루즈 스케줄링이 블록(616)으로 넘어가면, 할당된 작업에 대해서 n개의 프로세서 코어들은 작업 수행을 시작하고, 계산된 전압 레벨 또는 클럭 주파수가 n개의 프로세서 코어들 각각에 공급된다. 마지막으로, 블록(618)에서 루즈 스케줄링은 종료하게 된다. 루즈 스케줄링 구조에 의하면, n개의 할당된 코어들에 공급되는 전압 레벨 또는 클럭 주파수의 변화는 허용되지 않는다.
도 7은 도 6에 나타낸 루즈 스케줄링의 블록(604)를 수행하기 위한 일예를 나타낸 흐름도로서, n개의 프로세서 코어들이 작업에 할당된 경우 프로세서 코어들에 대해 사용가능한 전압 또는 주파수 중에서 데드라인 안에 작업을 완료하기 위한 최저 전압 또는 주파수가 계산하는 과정을 나타낸 것이다. 블록(700)에서 시작하여, 블록(710)에서 병렬 처리에 의해 주어진 작업을 완료하기 위한 n개의 프로세서 코어들 각각에 대한 계산 주기의 갯수(the number of computation cycle)가 계산된다. 이러한 계산을 위해, 일예로서, 작업에 관련된 프로세서 코어들의 갯수와 작업 완료에 대한 속도 상승 사이의 관계를 고려할 수 있는데, 이 관계는 작업을 완료하는데 필요한 시간에 영향을 미칠 수 있기 때문이다. 전술한 바와 같이, 도 4에 나타낸 이른바 MPEG-헤비 모델은 병렬 처리 관련 코어들의 갯수와 작업 실행의 속도 상승 사이에서 선형 관계를 나타내고, 이른바 콘케이브 모델은 작업 완료의 속도 상승은 작업의 병렬 처리에 관련되는 코어의 갯수의 제곱근에 비례하는 것을 나타내고 있다. 계산 주기의 갯수가 블록(720)에서 고정되면, 본 방법은 작업의 병렬 처리에 관련된 n개의 프로세서 코어에 사용가능한 전압 레벨 또는 클럭 주파수 중의 하나가 공급될 때 계산 주기의 고정 개수를 수행하는 시간을 계산할 수 있다. 사용가능한 모든 전압 레벨 또는 클럭 주파수 각각에 대하여, 계산 주기의 고정 개수를 수행하는 시간이 계산된다. 블록(730)에서, 본 발명은 n개의 프로세서 코어가 작업 데드라인 이내에 작업을 완료하는데 필요한 계산 주기의 개수를 수행할 수 있도록 하는 최저 전압 레벨 또는 클럭 주파수를 선택할 수 있다. 선택된 최저 전압 레벨 또는 클럭 주파수는 블록(740)에서 루즈 스케줄링으로 리턴되고 본 방법은 블록(760)에서 종료된다.
이하의 의사 코드(pseudo code)의 예는 루즈 스케즐링 방법을 설명하기 위한 것으로서, 주어진 작업이 C* 주기가 수행되어야 하며 D는 작업의 데드라인을 나타 낸다. 또한, n개의 프로세서 코어가 병렬로 작업을 수행할 때 작업 또는 멀티 코어 프로세서 시스템의 특성에 따라 작업 수행은 s(n)에 의해 빨라질 수 있는 것으로 가정한다. 일예로서, e(fm)은 주기당 전력 소비를 나타내는데, 여기에서 주파수(fm)은 프로세서 코어에 공급되는 것이다. 의사 코드 예는 컴퓨터 판독 매체에 공급될 수 있다.
Figure 112009050235356-pat00012
루즈 스케줄링에서는 데드라인 이전에 작업이 종료되는 경우 슬랙 시간(slack time)이 존재할 수 있다. 슬랙 시간 동안에, 작업 데드라인까지 전압 또는 주파수가 계속 공급되므로 작업을 완료한 n 프로세서 코어들은 남은 작업이 없는 경우에도 전력을 계속 소비할 수 있다. 이러한 슬랙 시간 동안의 불필요한 전력 소비를 줄이기 위하여, 다른 예로서 "타이트 스케줄(tight schedule)"이라는 방식이 제공된다. 타이트 스케줄 방식에서는, 한쌍의 전압 레벨 또는 클럭 주파수를 이용함으로써 추가적인 전력 절감을 달성할 수 있게 된다. 예컨대, 타이트 스케줄 방식에서는, 한 쌍의 전압 레벨 또는 클럭 주파수를 이용함으로써, 작업을 병렬 처리하는 동안 한 쌍의 전압 레벨 또는 클럭 주파수 사이의 단일 전이(single transition)를 가능하게 함으로써 n 프로세서 코어가 작업 데드라인 이내에 작업을 완료할 때 전력 소비를 최소화할 수 있도록 한다. 예컨대, 작업의 일부에는 하나의 전압 레벨 또는 클럭 주파수가 공급되어 실행되도록 하고 작업의 다른 부분에는 다른 보다 낮은 전압 레벨 또는 클럭 주파수를 공급하여 실행되도록 한다.
도 8은 타이트 스케줄링 방식의 일실시예를 나타낸 흐름도이다. 블록(800)에서 시작하여, 타이트 스케줄링은 블록(802)에서 n을 1로 초기화한다. 다음으로, 블록(804)에서 사용가능한 전압 레벨 또는 클럭 주파수 중에서 한쌍의 전압 레벨(V1, V2) 또는 한쌍의 클럭 주파수(F1,F2)를 선택한다. 다음으로, 블록(806)에서, 작업을 완료하는데 n 프로세서 코어가 사용된다는 가정하에 V1에서 V2로 또는 F1에서 F2로 전이(transition)가 발생하는 경우 작업 데드라인 안에 작업을 완료하는 시간을 계산한다. 작업은 데드라인을 포함하여 데드라인 까지 또는 데드라인에 정확히 완료될 수 있다. 블록(808)에서, 계산된 전이 시간에서 V1에서 V2로 또는 F1에서 F2로 전이가 발생하는 경우 n 프로세서 코어가 작업을 완료할 때의 전체 전력 소비량이 계산된다. 예컨대, 계산된 전체 전력 소비량은 n 프로세서 코어 및 전압 레벨 또는 클럭 주파수의 쌍에 대응하여 저장된다. 블록(810)에서, n이 N에 도달했는지를 판단한다. N은 멀티 코어 프로세서 환경에 제공되는 코어의 개수를 나타 낸다. n이 N에 도달했으면, 타이트 스케줄링은 블록(814)로 진행한다. 그렇지 않으면, 타이트 스케줄링은 블록(812)로 넘어가서 n을 1만큼 증가시키고 블록(804)로 돌아간다. 도 8에 나타낸 바와 같이, n이 N에 도달할 때까지 블록(804)과 블록(810) 과정을 반복한다. 블록(814)로 넘어가면, 블록(808)에서 각각 계산하여 저장해 둔 에너지 소비 정보를 비교한다. 타이트 스케줄링은 V1에서 V2로, F1에서 F2로 계산된 전이 시간에 전이가 이루어진 각각의 n 프로세서 코어에 의해 작업이 완료된 것으로 가정하여 이러한 비교를 수행한다. 블록(814)에서, 비교 결과, 사용할 최저 전력 소비를 갖는 n 프로세서 코어의 갯수와 전압 레벨 또는 클럭 주파수의 한쌍의 조합이 선택된다. 타이트 스케줄링은 블록(816)에서 전압 레벨 또는 클럭 주파수의 쌍과 함께 n 프로세서 코어들에게 주어진 작업을 할당하고 할당되지 않은 N-n 프로세서 코어들의 전원을 차단한다. 일예로서, 블록(818)로 진행하면 전압 레벨(V1) 또는 클럭 주파수(F1)이 각각의 n 프로세서 코어들에 공급되고 할당된 작업에 대해서 n 프로세서들은 작업을 실행하기 시작한다. 계산된 전이 시간에서, 전압 레벨 또는 클럭 주파수는 V1 또는 F1에서 V2 또는 F2로 전환된다. 마지막으로, 블록(820)에서 타이트 스케줄링이 종료된다. 타이트 스케줄링에 의하면, 할당된 n 프로세서 코어들에 공급되는 전압 레벨 또는 클럭 주파수의 변화는 작업 실행 중에 이루어진다는 점을 유의해야 한다.
도 9는 도 8에 나타낸 타이트 스케줄링의 블록(806)의 일실시예를 나타낸 것 으로서, V1에서 V2로, F1에서 F2로 전이가 이루어지는 시간은 n 프로세서 코어들이 작업 데드라인 이내에 작업을 완료해야 한다는 조건에 의해 결정되는 것을 특징으로 한다. 블록(900)에서 시작하여, 블록(910)에서 각각의 n 프로세서 코어가 주어진 작업을 병렬 처리에 의해 완료하는 연산 주기(computation cycle)의 갯수가 계산된다. 예컨대, 이러한 계산에는 전술한 바와 같이 MPEG-헤비, MPEG-라이트, 서브리니어, 콘케이브 모델 등과 같이 작업에 관련되는 프로세서 코어의 갯수와 병렬 처리에 의한 작업 완료의 속도 상승 사이의 관계를 고려할 수 있다. 연산 주기의 갯수가 고정되면, 블록(920)에서, n 프로세서 코어들에 공급되는 전압 레벨 또는 클럭 주파수를 V1 또는 F1에서 V2 또는 F2로 전이할 시간을 계산한다. 예컨대, 이러한 계산에 있어서, V1 또는 F1을 프로세서 코어에 공급하는 동안 C` 연산 주기가 수행되고 V2 또는 F2를 프로세서에 공급하는 동안 C`` 연산 주기가 수행되는 것으로 가정할 수 있는데, 여기에서, C`+C``는 n 프로세서 코어가 데드라인 이내에 작업을 완료하기 위한 연산 주기의 계산된 숫자와 같다. 계산된 전이 시간은 블록(930)에서 타이트 스케줄링으로 리턴되고 블록(940)에서 종료된다.
이하의 의사 코드(pseudo code)의 예는 타이트 스케줄링의 구성을 나타낸 것으로서, 주어진 작업은 C* 사이클을 수행할 것을 필요로 하고 D는 작업의 데드라인을 나타낸다. 타이트 스케줄링의 의사 코드는 컴퓨터 판독 가능 매체에 의해 공급될 수 있다.
Figure 112009050235356-pat00013
도 10 및 도 11은 본 발명에 의한 루즈 스케줄링 및 타이트 스케줄링에 의하여 전력을 절감한 시뮬레이션 결과를 나타낸 것이다. 2개의 시뮬레이션에 있어서 멀티-프로세서 코어에 의해 실행되는 작업은 MPEG-헤비 모델을 따르는 것으로 가정한다. 도 10의 시뮬레이션은 Intel
Figure 112009050235356-pat00014
XScale
Figure 112009050235356-pat00015
프로세서를 사용하였고, 도 11의 시뮬레이션은 IBM
Figure 112009050235356-pat00016
PPC 405LP
Figure 112009050235356-pat00017
프로세서를 사용하였다. 또한, 시뮬레이션에 있어서, 작업 부하(workload)는 단일 코어가 데드라인 이내에 최고 전압 레벨 또는 클럭 주파수를 사용하여 작업을 완료한 시간에 대한 비율로 정의하였다. 작업 부하는 도 10 및 도 11의 설명에서 각각 괄호로 표시하였다. 본 발명에 의한 프로세서 코어의 전력 절감을 단일 코어의 경우와 정량적으로 비교하기 위하여, 본 발명을 적용한 멀티 코어 실행시의 전력 소비와 최고 전압 레벨 또는 클럭 주파수에 의해 단일-코어 실행시의 시간의 비율을 전력 소비 비율(Power Consumption Ratio, PCR)로 정의하였다.
도 10에 도시한 바와 같이, Intel
Figure 112009050235356-pat00018
XScale
Figure 112009050235356-pat00019
프로세서를 사용한 경우, 루즈 및 타이트 스케줄링은 작업을 완료함에 있어서 전력 소비를 절감할 수 있음을 알 수 있다. 예컨대, 도 10은 루즈 스케줄링 또는 타이트 스케줄링이 모든 작업 부하에 대해 8개의 프로세서 코어 이상을 사용하여 작업을 완료할 때 본 발명에 의한 전력 절감이 약 5% PCR 이하로 이루어질 수 있음을 보여준다. 6개의 프로세서 코어를 사용하는 경우 루즈 스케줄링 또는 타이트 스케줄링은 전력 소비에 있어서 특별히 유의한 차이점을 가져오지는 않는다.
도 11의 시뮬레이션에 있어서, IBM
Figure 112009050235356-pat00020
PPC 405LP
Figure 112009050235356-pat00021
프로세서가 사용되었다. 작업을 실행하는데 관련된 프로세서 코어의 갯수가 4개 이상일 때, 최고 전압 또는 클럭 주파수의 단일 코어에 비하여 전력 소비는 10% 이하이다. 도 11의 시뮬레이션에 있어서 작업 완료에 사용되는 프로세서 코어의 갯수가 8개를 넘는 경우 타이트 스케줄링은 루즈 스케줄링에 비하여 전력 소비에서 큰 개선을 나타내지는 않았다.
본 명세서에 의하여, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명에 의한 장치 및 방법을 하드웨어, 소프트웨어, 펌웨어, 미들웨어 또는 이들의 결합에 의하여 구현할 수 있으며, 또한 시스템, 서브시스템, 컴포넌트 또는 이들의 서브 컴포넌트를 이용할 수도 있음을 이해할 수 있을 것이다. 예컨대, 소프트웨어로 구현된 본 발명에 의한 방법은 본 발명의 동작을 수행하기 위한 컴퓨터 코드를 포함한다. 이러한 컴퓨터 코드는 예컨대 프로세서 판독가능 매체(processor-readable medium) 또는 컴퓨터 프로그램 제품과 같은 기계 판독 가능 매체(machine-readable medium)에 저장되거나, 전달 매체 또는 통신 링크(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크 또는 무선 통신 링크 등)를 통해 반송파에 의해 또는 반송파에 의해 변조되는 컴퓨터 데이터 신호로서 전송될 수 있다. 기계 판독 가능 매체 또는 프로세서 판독 가능 매체는 기계(예컨대, 프로세서, 멀티 코어 프로세서, 컴퓨터 등)에 의하여 판독하여 실행할 수 있는 형태의 정보를 저장 또는 전송할 수 있는 모든 형태의 매체를 포함한다. 이러한 기계 판독 가능 매체의 종류는 예컨대, 플로피 디스크, 하드 디스크 드라이브, 컴팩트 디스크(CD), 디지털 비디오 디스크(DVD), 디지털 테이프, 컴퓨터 메모리 등이지만, 이에 한정되는 것은 아니다.
전술한 내용으로부터, 본 발명의 범위 내에서 다양한 형태의 변형 실시가 가능하다는 점을 유의해야 한다. 따라서, 첨부된 청구범위 및 도면을 포함하여 본 명세서에 개시된 내용은 한정적인 것이 아니라는 점을 유의해야 할 것이다.
도 1a는 특별한 전력 소비 기술을 사용하지 않는 단일 코어 프로세서 환경에서 전력 소비와 전압 레벨/클럭 주파수 사이의 관계를 나타낸 종래 기술을 나타낸 도면이다.
도 1b는 단일 코어 프로세서 환경에서 DPM이 적용된 경우 전력 소비와 전압 레벨/클럭 주파수 사이의 관계를 나타낸 종래 기술을 나타낸 도면이다.
도 1c는 단일 코어 프로세서 환경에서 DVS가 적용된 경우 전력 소비와 전압 레벨/클럭 주파수 사이의 관계를 나타낸 종래 기술을 나타낸 도면이다.]
도 2는 DVS를 지원하는 멀티 코어 프로세서 시스템 환경에서의 실시예를 나타낸 블록도이다.
도 3은 2개의 프로세서 코어들의 전력 소비와 전압 레벨 사이의 관계를 나타낸 그래프이다.
도 4는 4개의 서로 다른 속도 상승 모델에 대해 작업을 병렬 처리로 완료하는 경우 작업 완료 속도(즉, 속도 상승)와 프로세서 코어 갯수 사이의 관계를 나타낸 그래프이다.
도 5는 멀티 코어 환경에서 전력 소비 기술의 일실시예를 나타낸 도면이다.
도 6은 "루즈 스케줄링" 기술에 의해 작업을 완료할 때 전력 소비를 절감하기 위한 전압 레벨 및/또는 클럭 주파수를 결정하기 위한 방법의 일실시예를 나타낸 도면이다.
도 7은 루즈 스케줄링 기술에 의해 주어진 작업 데드라인 안에 n 프로세서 코어에 의해 작업을 완료하기 위하여 최저 전압 또는 주파수를 리턴하기 위한 방법의 일실시예의 흐름도이다.
도 8은 "타이트 스케줄링" 기술에 의하여 작업을 완료할 때 전력 소비를 최소화하기 위하여 전압 레벨 및/또는 클럭 주파수의 쌍을 이용하는 방법의 일실시예를 나타낸 흐름도이다.
도 9는 타이트 스케줄링 기술에 의하여 주어진 작업 데드라인 안에 n 프로세서 코어에 의해 작업을 완료하기 위하여 전압 레벨 및/또는 클럭 주파수의 쌍을 리턴하기 위한 방법의 일실시예의 흐름도이다.
도 10은 루즈 스케줄링 및 타이트 스케줄링이 서로 다른 작업 부하에 적용되는 경우 Intel
Figure 112009050235356-pat00022
XScale
Figure 112009050235356-pat00023
프로세서에서의 에너지 소비율의 일예를 나타낸 도면이다.
도 11은 루즈 스케줄링 및 타이트 스케줄링이 서로 다른 작업 부하에 적용되는 경우 IBM
Figure 112009050235356-pat00024
PPC405LP
Figure 112009050235356-pat00025
프로세서에서의 에너지 소비율의 일예를 나타낸 도면이다.

Claims (20)

  1. 멀티 코어 프로세서에 있어서,
    병렬로 작업을 처리하도록 구성된 복수개의 프로세서 코어; 및
    상기 복수개의 프로세서 코어들에 적어도 하나의 전압 레벨 및 클럭 주파수를 공급하도록 구성된 컨트롤러
    를 구비하고,
    상기 컨트롤러는,
    상기 복수개의 프로세서 코어 중 선택된 프로세서 코어들에 의하여 병렬로 작업을 처리하여 작업 데드라인 이내에 작업을 완료할 수 있도록, 사용가능한 전압 레벨 및 클럭 주파수 중에서 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나를 선택하고, 선택된 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나에 의해 작업을 처리할 때 소요되는 전체 전력 소비량이 최소값이 될 수 있도록 소정 개수의 프로세서 코어를 선택하고, 선택되지 않은 프로세서 코어들은 비선택 상태로 두고,
    상기 선택된 프로세서 코어에 대해 선택된 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나를 상기 선택된 소정 개수의 프로세서에 공급하여 상기 선택된 프로세서 코어들이 병렬로 작업을 처리하여 작업 데드라인 이내에 작업을 완료하도록 하는 것을 특징으로 하는 멀티 코어 프로세서.
  2. 제1항에 있어서,
    상기 사용가능한 전압 레벨 및 클럭 주파수는 유한값(definte) 및 이산값(discrete)인 것을 특징으로 하는 멀티 코어 프로세서.
  3. 제1항에 있어서,
    상기 비선택 상태의 선택되지 않은 프로세서 코어들은 전원이 차단되는 것을 특징으로 하는 멀티 코어 프로세서.
  4. 제1항에 있어서,
    사용가능한 전압 레벨로부터 한 쌍의 전압 레벨을 사용하여 선택된 프로세서 코어의 전력 소비를 최소화하여 작업 데드라인 이내에 작업을 완료하도록 하며, 상기 한 쌍의 전압 레벨 중의 하나가 실행 시간 동안 공급되고 다른 하나는 실행 시간 이외의 시간 동안 공급되는 것을 특징으로 하는 멀티 코어 프로세서.
  5. 제1항에 있어서,
    사용가능한 클럭 주파수로부터 한 쌍의 클럭 주파수를 사용하여 선택된 프로세서 코어의 전력 소비를 최소화하여 작업 데드라인 이내에 작업을 완료하도록 하며, 상기 한 쌍의 클럭 주파수 중의 하나가 실행 시간 동안 공급되고 다른 하나는 실행 시간 이외의 시간 동안 공급되는 것을 특징으로 하는 멀티 코어 프로세서.
  6. 제4항에 있어서,
    상기 사용가능한 전압 레벨은 유한값 및 이산값인 것을 특징으로 하는 멀티 코어 프로세서.
  7. 제5항에 있어서,
    상기 사용가능한 클럭 주파수는 유한값 및 이산값인 것을 특징으로 하는 멀티 코어 프로세서.
  8. 제6항에 있어서,
    상기 비선택 상태의 선택되지 않은 프로세서 코어들은 전원이 차단되는 것을 특징으로 하는 멀티 코어 프로세서.
  9. 제4항에 있어서,
    상기 전압 레벨의 쌍은 전력 소비 및 전압 레벨 증가 사이의 관계가 선형 및 오목 상승(concave up) 중 적어도 어느 하나를 갖는 것을 특징으로 하는 멀티 코어 프로세서.
  10. 제5항에 있어서,
    상기 클럭 주파수의 쌍은 전력 소비 및 클럭 주파수 증가 사이의 관계가 선형 및 오목 상승 중 적어도 어느 하나를 갖는 것을 특징으로 하는 멀티 코어 프로세서.
  11. 병렬로 작업을 처리하도록 구성된 복수개의 프로세서 코어를 갖는 프로세서; 및
    상기 복수개의 프로세서 코어에 적어도 하나의 전압 레벨 및 클럭 주파수를 공급하도록 구성된 컨트롤러
    를 구비하고,
    상기 컨트롤러는,
    상기 복수개의 프로세서 코어 중 선택된 프로세서 코어들에 의하여 병렬로 작업을 처리하여 작업 데드라인 이내에 작업을 완료할 수 있도록, 사용가능한 전압 레벨 및 클럭 주파수 중에서 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나를 선택하고, 선택된 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나에 의해 작업을 처리할 때 소요되는 전체 전력 소비량이 최소값이 될 수 있도록 소정 개수의 프로세서 코어를 선택하고, 선택되지 않은 프로세서 코어들은 비선택 상태로 두고,
    상기 선택된 프로세서 코어에 대해 선택된 최저 전압 레벨 및 최저 클럭 주파수 중의 적어도 어느 하나를 상기 선택된 소정 개수의 프로세서에 공급하여 상기 선택된 프로세서 코어들이 병렬로 작업을 처리하여 작업 데드라인 이내에 작업을 완료하도록 하는 것을 특징으로 하는 시스템.
  12. 제11항에 있어서,
    상기 사용가능한 전압 레벨 및 클럭 주파수는 유한값 및 및 이산값인 것을 특징으로 하는 시스템.
  13. 제11항에 있어서,
    상기 비선택 상태의 선택되지 않은 프로세서 코어들은 전원이 차단되는 것을 특징으로 하는 시스템.
  14. 제12항에 있어서,
    상기 비선택 상태의 선택되지 않은 프로세서 코어들은 전원이 차단되는 것을 특징으로 하는 시스템.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020090075977A 2008-08-28 2009-08-18 에너지 절약형 멀티 코어 프로세서 KR101072864B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/200,698 2008-08-28
US12/200,698 US20100058086A1 (en) 2008-08-28 2008-08-28 Energy-efficient multi-core processor

Publications (2)

Publication Number Publication Date
KR20100026989A KR20100026989A (ko) 2010-03-10
KR101072864B1 true KR101072864B1 (ko) 2011-10-17

Family

ID=41727056

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090075977A KR101072864B1 (ko) 2008-08-28 2009-08-18 에너지 절약형 멀티 코어 프로세서

Country Status (2)

Country Link
US (1) US20100058086A1 (ko)
KR (1) KR101072864B1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5428267B2 (ja) * 2008-09-26 2014-02-26 富士通株式会社 電源制御システム、および電源制御方法
JP2010108204A (ja) * 2008-10-30 2010-05-13 Hitachi Ltd マルチチッププロセッサ
US8245070B2 (en) * 2008-12-30 2012-08-14 Intel Corporation Method for optimizing voltage-frequency setup in multi-core processor systems
US8140876B2 (en) * 2009-01-16 2012-03-20 International Business Machines Corporation Reducing power consumption of components based on criticality of running tasks independent of scheduling priority in multitask computer
US8132031B2 (en) * 2009-03-17 2012-03-06 International Business Machines Corporation Power adjustment based on completion times in a parallel computing system
FR2943806A1 (fr) * 2009-03-31 2010-10-01 Inst Nat Rech Inf Automat Dispositif de commande d'alimentation d'un calculateur
US8064197B2 (en) * 2009-05-22 2011-11-22 Advanced Micro Devices, Inc. Heat management using power management information
JP5441626B2 (ja) * 2009-11-06 2014-03-12 日立オートモティブシステムズ株式会社 車載用マルチアプリ実行装置
US20110145555A1 (en) * 2009-12-15 2011-06-16 International Business Machines Corporation Controlling Power Management Policies on a Per Partition Basis in a Virtualized Environment
WO2011118012A1 (ja) * 2010-03-25 2011-09-29 富士通株式会社 マルチコアプロセッサシステム、制御プログラム、および制御方法
US8607083B2 (en) * 2010-04-01 2013-12-10 Intel Corporation Method and apparatus for interrupt power management
EP2581830A4 (en) * 2010-06-10 2017-01-11 Fujitsu Limited Multi-core processor system, method of power control, and power control program
US9063866B1 (en) 2010-07-12 2015-06-23 Vmware, Inc. Page table data structure for online classification of memory pages based on activity level
US9032398B2 (en) 2010-07-12 2015-05-12 Vmware, Inc. Online classification of memory pages based on activity level represented by one or more bits
US8832390B1 (en) 2010-07-12 2014-09-09 Vmware, Inc. Online classification of memory pages based on activity level using dynamically adjustable scan rates
US8990531B2 (en) * 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level
US8943334B2 (en) * 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8489909B2 (en) 2010-09-24 2013-07-16 International Business Machines Corporation Displaying the operating efficiency of a processor
KR101232561B1 (ko) * 2011-02-07 2013-02-12 고려대학교 산학협력단 임베디드 멀티 코어 프로세서의 태스크 스케쥴링 및 캐쉬 메모리 리사이징 장치 및 방법
WO2012108058A1 (ja) * 2011-02-10 2012-08-16 富士通株式会社 スケジューリング方法、設計支援方法、およびシステム
CN107256077A (zh) * 2011-02-10 2017-10-17 富士通株式会社 调度方法、设计辅助方法以及系统
KR20130020420A (ko) 2011-08-19 2013-02-27 삼성전자주식회사 반도체 장치의 태스크 스케쥴링 방법
KR101859188B1 (ko) 2011-09-26 2018-06-29 삼성전자주식회사 매니코어 시스템에서의 파티션 스케줄링 장치 및 방법
US9569278B2 (en) 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
US9442732B2 (en) * 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
US9037889B2 (en) * 2012-09-28 2015-05-19 Intel Corporation Apparatus and method for determining the number of execution cores to keep active in a processor
KR102005765B1 (ko) 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법
US9442559B2 (en) * 2013-03-14 2016-09-13 Intel Corporation Exploiting process variation in a multicore processor
WO2014173631A1 (en) * 2013-04-26 2014-10-30 Siemens Aktiengesellschaft A method and a system for reducing power consumption in a processing device
KR102127800B1 (ko) * 2013-07-26 2020-06-29 삼성전자주식회사 멀티미디어 컨텐츠를 송수신하는 방법 및 그 장치
KR102189115B1 (ko) 2013-11-11 2020-12-09 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법
KR101842016B1 (ko) 2013-12-10 2018-03-28 한국전자통신연구원 멀티 코어 환경에서의 동적 전력 제어방법
US9342136B2 (en) * 2013-12-28 2016-05-17 Samsung Electronics Co., Ltd. Dynamic thermal budget allocation for multi-processor systems
US9439043B2 (en) * 2014-05-16 2016-09-06 Google Inc. Running location provider processes
US20150355942A1 (en) * 2014-06-04 2015-12-10 Texas Instruments Incorporated Energy-efficient real-time task scheduler
US10509588B2 (en) * 2015-09-18 2019-12-17 Qualcomm Incorporated System and method for controlling memory frequency using feed-forward compression statistics
US10509683B2 (en) * 2015-09-25 2019-12-17 Microsoft Technology Licensing, Llc Modeling resource usage for a job
US10073718B2 (en) 2016-01-15 2018-09-11 Intel Corporation Systems, methods and devices for determining work placement on processor cores
US9848515B1 (en) 2016-05-27 2017-12-19 Advanced Micro Devices, Inc. Multi-compartment computing device with shared cooling device
US10298012B2 (en) 2016-09-29 2019-05-21 Enel X North America, Inc. Network operations center including automated validation, estimation, and editing configuration engine
US10291022B2 (en) 2016-09-29 2019-05-14 Enel X North America, Inc. Apparatus and method for automated configuration of estimation rules in a network operations center
US10203714B2 (en) * 2016-09-29 2019-02-12 Enel X North America, Inc. Brown out prediction system including automated validation, estimation, and editing rules configuration engine
US10191506B2 (en) * 2016-09-29 2019-01-29 Enel X North America, Inc. Demand response dispatch prediction system including automated validation, estimation, and editing rules configuration engine
US10170910B2 (en) * 2016-09-29 2019-01-01 Enel X North America, Inc. Energy baselining system including automated validation, estimation, and editing rules configuration engine
US10423186B2 (en) 2016-09-29 2019-09-24 Enel X North America, Inc. Building control system including automated validation, estimation, and editing rules configuration engine
US10461533B2 (en) * 2016-09-29 2019-10-29 Enel X North America, Inc. Apparatus and method for automated validation, estimation, and editing configuration
US10566791B2 (en) 2016-09-29 2020-02-18 Enel X North America, Inc. Automated validation, estimation, and editing processor
US10606305B2 (en) * 2018-04-30 2020-03-31 Qualcomm Incorporated Processor load step balancing
CN112799838A (zh) * 2021-01-27 2021-05-14 Oppo广东移动通信有限公司 任务处理方法、多核处理器及计算机设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6845456B1 (en) * 2001-05-01 2005-01-18 Advanced Micro Devices, Inc. CPU utilization measurement techniques for use in power management
US8032891B2 (en) * 2002-05-20 2011-10-04 Texas Instruments Incorporated Energy-aware scheduling of application execution
US7155617B2 (en) * 2002-08-01 2006-12-26 Texas Instruments Incorporated Methods and systems for performing dynamic power management via frequency and voltage scaling
US7131015B2 (en) * 2002-11-12 2006-10-31 Arm Limited Performance level selection in a data processing system using a plurality of performance request calculating algorithms
GB2403823B (en) * 2003-07-08 2005-09-21 Toshiba Res Europ Ltd Controller for processing apparatus
US7802255B2 (en) * 2003-12-19 2010-09-21 Stmicroelectronics, Inc. Thread execution scheduler for multi-processing system and method
US7451333B2 (en) * 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
JP4082706B2 (ja) * 2005-04-12 2008-04-30 学校法人早稲田大学 マルチプロセッサシステム及びマルチグレイン並列化コンパイラ
US7779287B2 (en) * 2005-08-22 2010-08-17 Intel Corporation Reducing power consumption in multiprocessor systems
GB0519981D0 (en) * 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7460932B2 (en) * 2005-11-29 2008-12-02 International Business Machines Corporation Support of deep power savings mode and partial good in a thermal management system
US8578193B2 (en) * 2007-11-28 2013-11-05 International Business Machines Corporation Apparatus, method and program product for adaptive real-time power and perfomance optimization of multi-core processors
US8010822B2 (en) * 2008-03-28 2011-08-30 Microsoft Corporation Power-aware thread scheduling and dynamic use of processors
US20090271646A1 (en) * 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
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
US8151008B2 (en) * 2008-07-02 2012-04-03 Cradle Ip, Llc Method and system for performing DMA in a multi-core system-on-chip using deadline-based scheduling

Also Published As

Publication number Publication date
US20100058086A1 (en) 2010-03-04
KR20100026989A (ko) 2010-03-10

Similar Documents

Publication Publication Date Title
KR101072864B1 (ko) 에너지 절약형 멀티 코어 프로세서
US10748237B2 (en) Adaptive scheduling for task assignment among heterogeneous processor cores
US8751854B2 (en) Processor core clock rate selection
JP5695766B2 (ja) マルチコアシステムエネルギー消費最適化
US8284205B2 (en) Methods and apparatuses for load balancing between multiple processing units
KR101700567B1 (ko) 와트당 최적 성능을 위한 지능형 멀티코어 제어
KR100858766B1 (ko) 프로세서 시스템의 동적 전력 관리를 위한 방법 및 장치
EP2257861B1 (en) Power-aware thread scheduling and dynamic use of processors
EP1956465B1 (en) Power aware software pipelining for hardware accelerators
KR20190109408A (ko) 적응적 전력 제어 루프
JP2012504800A (ja) 異種コンピューティング・システムにおいて実行するためのアプリケーションのスケジューリング
JP2013500515A (ja) コンポーネントの電力監視およびワークロードの最適化
CN101379453A (zh) 使用动态工作负载特征来控制cpu频率和电压调节的方法和装置
US20130283277A1 (en) Thread migration to improve power efficiency in a parallel processing environment
US20180329742A1 (en) Timer-assisted frame running time estimation
US11507381B2 (en) Serialization floors and deadline driven control for performance optimization of asymmetric multiprocessor systems
US10983773B2 (en) Technologies for translation cache management in binary translation systems
JP2010039802A (ja) マルチプロセッサシステム、スケジューリング方法およびそのプログラム
Zhang et al. RESCUE: An energy-aware scheduler for cloud environments
KR101586712B1 (ko) 멀티 프로세서 시스템에서 태스크 의존성 그래프를 이용한 스케줄링 방법 및 장치
CN105162844A (zh) 一种任务分配的方法及装置
US11886224B2 (en) Core selection based on usage policy and core constraints
KR101269094B1 (ko) 에너지 효율에 따른 멀티코어 프로세서용 응용프로그램의 데이터처리 판단방법
CN116414667A (zh) 一种计算卸载中估计应用程序执行时延的方法
TW201243618A (en) Load balancing in heterogeneous computing environments

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
FPAY Annual fee payment

Payment date: 20141006

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151006

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161005

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180920

Year of fee payment: 8