KR20110049409A - 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 - Google Patents
저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 Download PDFInfo
- Publication number
- KR20110049409A KR20110049409A KR1020090106418A KR20090106418A KR20110049409A KR 20110049409 A KR20110049409 A KR 20110049409A KR 1020090106418 A KR1020090106418 A KR 1020090106418A KR 20090106418 A KR20090106418 A KR 20090106418A KR 20110049409 A KR20110049409 A KR 20110049409A
- Authority
- KR
- South Korea
- Prior art keywords
- cpu usage
- information
- policy
- related information
- task
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Power Sources (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
본 발명은 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치에 관한 것이다. 본 발명은 태스크의 시작 혹은 종료 시 OS(Operation System) 커넬에서 태스크 정보를 전달받고, 상기 태스크 정보 중 현재의 CPU 사용량을 이용하여 이후의 CPU 사용량을 예측하고, 상기 태스크 정보 중 메모리 관련 정보들을 모니터링하고, 상기 현재의 CPU 사용량의 변화량과 상기 모니터링한 메모리 관련 정보들을 비교하고, 상기 전달받은 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 바탕으로 전력 제어를 위한 정책을 수립하며, 상기 수립한 정책에 따라 멀티코어의 온오프를 제어한다. 이와 같이 하면, CPU 사용량만을 이용하여 DPM을 수행할 때 발생하는 문제를 해결할 수 있다.
저전력, 멀티코어, DRM, CPU 사용량, 메모리 정보
Description
본 발명은 시스템의 성능 저하를 방지하기 위한 장치 및 방법에 관한 것으로, 특히 저전력 멀티코어 시스템에서의 성능 저하를 방지하기 위한 장치 및 방법에 관한 것이다.
다양한 어플리케이션에 대한 성능을 만족하면서 전력 소비를 낮추기 위한 저전력 설계에 대한 필요성이 대두되고 있는 상황에서 멀티코어 프로세서의 중요성은 더욱 커지고 있다. 인텔(Intel), AMD 등의 세계 유수의 프로세서 제조사들은 고성능 저전력의 멀티코어 칩과, 이와 관련된 솔루션 및 이를 활용한 제품들을 선보이고 있다. 특히 NVIDIA, TI, 퀄컴(Qualcomm) 등에서는 고성능 휴대 단말기에 멀티코어를 채택한 제품들을 출시하고 있으며 지속적인 개발에 대한 로드 맵을 제시하고 있다.
한편, 코어의 저전력 기법은 싱글코어에도 존재하지만, 멀티코어 환경에서는 싱글코어 환경에서 적용되었던 저전력 기법만으로 멀티코어 시스템의 전력을 최소화하는데 한계가 있다. 따라서 싱글코어에서 사용하던 기존의 저전력 기법을 멀티 코어에 맞게 수정, 보완할 필요가 있다.
멀티코어의 저전력 제어는, 수행되는 태스크(task)의 중앙처리장치의 사용량(CPU usage)을 분석하여 이후 태스크의 CPU 사용량을 예측하고 정해진 저전력 정책들을 적용하여 코어의 동작(performance)을 조절함으로써 전력 소비를 절감하는 것이다.
이러한 멀티코어의 저전력 기법은 크게 DPS(Dynamic Power Shutdown)와 DVFS(Dynamic Voltage Frequency Scaling)로 구분한다. DPS는 코어의 상태 및 어플리케이션의 상황에 따라 동적으로 코어의 전원을 온/오프 시키는 방법이고, DVFS는 동적으로 코어의 전압과 주파수를 조절하는 방법이다. 또한 이 두 가지 기법을 통합하여 전력을 조절하는 기법을 DPM(Dynamic Power Management)이라 한다.
도 1은 DPS를 이용한 전력 관리 방법을 도시한 것이고, 도 2는 DVFS를 통한 전력 관리 방법을 도시한 것이며, 도 3은 DPM을 이용한 전력 관리 방법을 도시한 것이다.
도 1에 도시한 바와 같이, DPS는 연산량에 따라 온 되는 코어의 개수를 조절하여 불필요한 전력의 낭비를 방지한다. 또한 도 2에 도시한 바와 같이, DVFS는 코어의 주파수를 전체적으로 낮추어 시스템 전체의 소모 전력을 줄여준다. 또한 도 3에 도시한 바와 같이, DPM은 연산량에 따라 코어의 온/오프를 조절함과 동시에 코어의 주파수도 조절함으로써 저전력을 극대화할 수 있다.
도 4는 DPM을 위한 저전력 제어 장치의 블록도이다.
도 4에 도시한 바와 같이, DPM을 위한 저전력 제어 장치는 주 제어부(410), OS 커넬(Operation System Kernel, 420), CPU 사용량 예측부(430), 수행 제어부(440) 및 정책 관리부(450)를 포함한다.
주 제어부(410)는 OS 커넬(420)로부터 수신되는 태스크 상태 정보에 따라 CPU 사용량 예측부(430)와 수행 제어부(440)를 제어한다. CPU 사용량 예측부(430)는 태스크가 수행되는 동안 CPU 사용량에 대한 정보를 모니터링하여 이후 CPU 사용량을 예측하는 역할을 한다. 정책 관리부(450)는 CPU 사용량 예측부(430)와 정책 제어에 관한 정보를 송수신하고 코어를 제어하기 위한 정책을 수립하는 역할을 한다. 수행 제어부(440)는 정책 관리부(450)로부터 입력되는 정보에 따라 코어를 직접 제어하여 저전력 수행이 가능하도록 하는 역할을 한다.
이와 같이 CPU 사용량을 기반으로 하는 멀티코어 저전력 기술은 CPU의 상태를 직접 확인하고 제어를 할 수 있다는 장점이 있으나, 어플리케이션에 따라 달라지는 CPU 사용량의 변화를 정확히 예측하는 데 한계가 있으며, 예측 오차가 클 경우 불필요한 코어 제어로 인해 시스템의 성능을 저하시킬 수 있다. 또한 CPU 사용량의 변화가 큰 어플리케이션의 경우에는 변화량 예측이 정확히 이루어졌다고 하더라도 코어 제어 속도가 CPU 사용량의 변화 속도를 따라가지 못하여 시스템의 성능 저하가 발생할 수 있다. 또한 사용량의 변화에 따라 잦은 코어의 제어가 이루어짐에 따라 오히려 시스템 오버헤드가 발생하여 전력 소모를 증가시킬 수 있다.
도 5는 ARM11 계열의 4개의 코어를 가지는 멀티 코어 CPU가 리눅스 상에서 동작하는 경우의 CPU 사용량의 변화 추이를 나타낸 예이다.
도 5에서 시나리오 A는 게임 등의 임의의 프로그램을 실행시키고 닫는 경우, 시나리오 B는 동영상 파일을 멀티미디어 플레이어로 수행한 경우, 시나리오 C는 임의의 프로그램을 실행하고 끄는 동시에 동영상 파일을 멀티미디어 플레이어로 수행한 경우를 나타낸 것이다. CPU 사용량 1.0은 CPU를 100% 사용하는 것을 의미하며, 따라서 0 ~ 0.25 사이는 1개의 코어, 0.25 ~ 0.5 사이는 2개의 코어, 0.5 ~ 0.75 사이는 3개의 코어, 0.75 ~ 1.00 사이는 4개의 코어를 동작시킴으로써 시나리오의 성능 저하 없이 저전력 제어를 할 수 있다. 도 5에서 각 경계값에서의 마진은 생략하였다.
시나리오 A의 경우 CPU 사용량이 순차적으로 증가하기 때문에 CPU 사용량의 변화에 따라 코어를 1개 온 시킨 후 하나씩 추가로 온 시킴으로써 저전력 제어를 할 수 있다. 하지만 시나리오 B, C의 경우는 CPU 사용량의 변화가 클 뿐만 아니라, CPU 사용량이 순간적으로 변하는 구간에서는 CPU 사용량에 따라 코어의 온/오프를 제어한다 하더라도 코어의 제어 속도가 CPU 사용량의 변화 속도를 따라가지 못하게 되어 시스템의 성능 저하가 발생할 수 있다. 또한 코어의 온/오프 제어가 빈번하게 발생하게 되면 시스템의 오버헤드가 증가되어 전력 손실을 가져올 수 있다. 그러므로 CPU 사용량만을 모니터링하여 DPM을 수행하는 방법은, CPU 사용량의 변화량이 큰 어플리케이션에서는 적합하지 않다.
본 발명이 해결하고자 하는 과제는 저전력 멀티코어 시스템에서 제공하는 정보를 이용하여 전력을 제어하는 방법 및 장치를 제공하는 것이다.
또한 본 발명이 해결하고자 하는 과제는 CPU 사용량 외에 저전력 멀티코어 시스템에서 제공하는 메모리 정보를 이용하여 전력을 제어하는 방법 및 장치를 제공하는 것이다.
본 발명의 실시예에 따르면, 저전력 멀티코어 시스템에서 전력을 제어하는 장치에 있어서, 태스크의 시작 혹은 종료 시 OS(Operation System) 커넬에서 태스크 정보를 전달 받아서 처리하는 주 제어부와, 상기 주 제어부로부터 상기 태스크 정보를 전달 받고, 상기 태스크 정보 중 현재의 CPU 사용량을 이용하여 이후의 CPU 사용량을 예측하고, 상기 태스크 정보 중 메모리 관련 정보들을 모니터링하는 태스크 정보 제어부와, 상기 태스크 정보 제어부로부터 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 전달받고, 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 바탕으로 전력 제어를 위한 정책을 수립하는 정책 관리부와, 상기 정책 관리부에서 수립된 정책에 따라 멀티코어의 온오프를 제어하는 수행 제어부를 포함한다.
또한 본 발명의 실시예에 따르면, 저전력 멀티코어 시스템에서 전력을 제어하는 방법에 있어서, 태스크의 시작 혹은 종료 시 OS(Operation System) 커넬에서 태스크 정보를 전달받는 과정과, 상기 태스크 정보 중 현재의 CPU 사용량을 이용하여 이후의 CPU 사용량을 예측하고, 상기 태스크 정보 중 메모리 관련 정보들을 모니터링하고, 상기 현재의 CPU 사용량의 변화량과 상기 모니터링한 메모리 관련 정보들을 비교하는 과정과, 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 바탕으로 전력 제어를 위한 정책을 수립하는 과정과, 상기 수립한 정책에 따라 멀티코어의 온오프를 제어하는 과정을 포함한다.
이하에서 개시되는 발명 중 대표적인 것에 의해 얻어지는 효과를 간단히 설명하면 다음과 같다.
본 발명은 CPU 사용량 외에 메모리 할당 정보와 스레드(thread) 정보를 이용하여 전력을 제어할 경우 CPU 사용량만을 이용하여 DPM을 수행할 때 발생하는 문제를 해결할 수 있다.
또한 본 발명은 DPM 수행에 있어서, CPU 사용량이 급격하게 변하는 구간에서 CPU 사용량 외에 메모리 관련 정보 및 thread 정보를 사용함으로써 시스템의 성능 저하를 방지하고 코어의 스위칭 전력 소모를 줄일 수 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예에 대한 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명은 CPU 사용량이 급격하게 변하는 구간에서 CPU 사용량만을 고려하여 전력 제어를 수행함으로써 발생할 수 있는 문제점을 방지하기 위해, CPU 사용량 이외에 메모리 관련 정보 및 thread 정보를 이용한다.
도 6은 도 5와 동일한 시나리오 상에서 CPU 사용량과 메모리 정보인 mapped 정보의 변화 추이를 나타낸 것이다.
mapped 정보는 메모리 매핑을 위해 할당된 메모리의 크기를 의미한다. 즉 맵 디바이스(map device), 파일, 라이브러리 등을 사용하기 위해 필요한 메모리 할당량으로, 이 값의 변화를 통해서 시스템의 현재 상태나 수행되는 어플리케이션이 사용하는 메모리 정보 등을 알 수 있다.
도 6을 참조하면, 시나리오 B에서 mapped 값이 일정하게 유지되는 것을 알 수 있다. 따라서 시나리오 B에서 CPU 사용량 대신에 mapped 값을 기준으로 DPM을 수행하면 급격히 변하는 CPU 사용량에 따라 DPM을 수행함으로 인해 발생하는 성능 저하 문제나 코어의 잦은 온/오프 스위칭으로 인한 전력 감소를 방지할 수 있다. 이 경우, CPU 사용량이 0.4와 0.6 사이이므로 3개의 코어를 계속 온 시켜서 동작시키면 된다.
그러나 도 6에서도 시나리오 C의 mapped 값은 일정하게 유지되지 않고 변화하는 것을 확인할 수 있다. 이와 같이 시나리오 C의 경우에는 mapped 값을 이용한 DRM도 효율적이지 않으므로 DRM 수행시 CPU 사용량과 mapped 정보 이외의 다른 정보를 고려해야 할 필요가 있다.
도 7은 도 5 및 도 6에서 사용한 동일 시나리오에서 CPU 사용량과 메모리 정보인 액티브(active) 정보의 변화 추이를 나타낸 것이다.
active 정보는 현재 사용중인 버퍼나 캐시 메모리의 크기를 의미한다. 도 7의 시나리오 C를 보면, active 값이 계속해서 증가하는 것을 알 수 있는데, 이는 버퍼와 캐시 메모리의 사용량이 증가함을 나타낸다. 그러므로 시나리오 C에서 DRM 수행시 CPU 사용량의 급격한 변화로 인해 발생할 수 있는 성능 저하 문제나 코어의 온/오프f 스위칭으로 인한 전력 감소를 방지하기 위해서는, active 값이 증가할 때에 DPM을 수행하지 않는 정책을 사용할 수 있다.
도 8은 도 5 내지 도 7과 동일한 시나리오에서 CPU 사용량과 thread 정보인 nr_threads의 변화 추이를 나타낸 것이다.
nr_threads 정보는 현재 시스템 내에서 생성되는 thread 개수에 대한 정보로 이를 통해 thread의 생성 및 소멸 상태를 알 수 있다. 도 8을 보면 시나리오 B에서 도 6의 mapped의 변화 추이와 유사한 형태를 나타내는데, 이는 시나리오 B의 시작 시점에서 thread가 생성되었다가 시나리오 B의 종료 시점에서 thread가 급격하게 소멸하기 때문이다. 그러므로 시나리오 B에서 CPU 사용량 대신에 nr_threads 값을 기준으로 DPM을 수행하면 급격히 변하는 CPU 사용량으로 인해 발생하는 성능 저하 문제나 코어의 온/오프 스위칭으로 인한 전력 감소를 방지할 수 있다.
다음, 본 발명의 실시예에 따른 DRM을 수행하기 위한 장치에 관하여 설명한 다.
도 9는 본 발명의 실시예에 따른 DRM 장치의 구성을 도시한 것이다. 본 발명의 실시예에서는 도 4에 도시한 일반적인 DPM 장치의 구성에 시스템 정보 모니터링부(932)를 추가하였다.
주 제어부(910)는 태스크의 시작 혹은 종료 시 OS 커넬(920)에서 태스크의 상태 정보 및 태스크 아이디(id) 등을 전달 받아서 처리한다.
태스크 정보 제어부(930)는 CPU 사용량 예측부(931)와 시스템 정보 모니터링부(932)로 구성되며, 주 제어부(910)로부터 정책 수립을 위해 필요한 태스크 정보를 전달 받는다.
CPU 사용량 예측부(931)는 태스크가 수행되는 동안 주 제어부(910)로부터 CPU 사용량에 대한 정보를 전달 받아서 이후의 CPU 사용량을 예측하는 역할을 한다. 시스템 정보 모니터링부(932)는 태스크 정보 중에서 thread와 메모리 관련 정보들을 모니터링하여 CPU 사용량의 변화량과 비교한다. 본 발명에서는 메모리 관련 정보로서 메모리 매핑을 위한 mapped의 변화와 버퍼 및 페이지 캐시 메모리의 크기를 나타내는 active 정보, 그리고 생성되는 thread 개수(nr_threads)의 변화를 모니터링한다.
정책 관리부(950)는 CPU 사용량 예측부(931)와 시스템 정보 모니터링부(932)를 통해 얻은 정보를 바탕으로 최적의 DPM을 위한 정책을 수립하고 수립된 정책에 따라 코어를 제어하도록 수립된 정책에 관한 정보를 수행 제어부(990)로 전달한다.
수행 제어부(990)는 정책 관리부(950)로부터 수신한 정보에 따라 코어를 제 어하여 저전력 제어를 수행한다.
다음, 도면을 통해 DRM 장치의 동작에 관해 설명한다.
도 10은 주 제어부(910)의 동작을 설명하기 위한 도면이다.
도 10에 도시한 바와 같이, 주 제어부(910)는 태스크가 시작 또는 종료되는 시점에 OS 커넬(920)로부터 호출된다. 이때 태스크 id를 포함한 태스크 상태 정보를 OS 커넬(920)로부터 전달받는다(1010). 그리고 주 제어부(910)는 태스크 변경 시점을 판단하여 태스크 정보를 전달(1020)하여 태스크 정보 제어부(930)를 동작시키며, 태스크 정보 제어부(930)의 동작이 종료되면 태스크 id를 전달(1030)하여 수행 제어부(940)를 동작시킨다.
도 11은 태스크 정보 제어부(930)의 동작을 설명하기 위한 도면이다.
도 11에 도시한 바와 같이, 태스크 정보 제어부(930)는 태스크 변경 시점에 주 제어부(910)로부터 호출된다. 이때 태스크에 관한 CPU 사용량 및 메모리 관련 정보들을 전달 받는다(1110). 이후 태스크 정보 제어부(930) 내의 CPU 사용량 예측부(931)는 정책 관리부(950)로부터 이전 CPU 사용량을 가져온다(1120). 그리고 이전 CPU 사용량으로부터 이후의 CPU 사용량을 예측하고 이 예측값을 정책 관리부(950)에 저장한다(1130). 또한 태스크 정보 제어부(930) 내의 시스템 정보 모니터링부(932)에서는 태스크 수행 동안에 변화하는 메모리 정보를 모니터링하고 모니터링한 값을 정책 관리부(950)에 전달한다(950).
도 12는 정책 관리부(950)의 동작을 설명하기 위한 도면이다.
도 12에 도시한 바와 같이, 정책 관리부(950)는 태스크 정보 제어부(930)의 CPU 사용량 예측부(931)로부터 예측된 CPU 사용량 값을 전달받는다(1210). 그리고 DPM을 위한 CPU 사용량의 임계값(threshold)을 선정하고 CPU 사용량과의 비교를 통해 DPM 수행 여부 및 수행 레벨을 결정하여 이를 수행 제어부(940)에 전달한다(1250).
또한 정책 관리부(950)는 태스크 정보 제어부(930)의 시스템 정보 모니터링부(932)로부터 메모리 정보인 mapped, active 및 nr_threads 값을 전달받는다(1220,1230,1240). 정책 관리부(950)는 CPU 사용량의 변화량이 커서 DPM 수행 여부가 빈번하게 변경되는 구간에서는 mapped, active 및 nr_threads 값의 이전 값과 현재 값을 비교한다. mapped와 nr_threads가 일정하게 유지되면 DPM 수행을 중단하고 시스템이 만족하는 수준의 코어 상태를 유지하도록 하기 위한 수행 정보(performance set info)를 수행 제어부(940)에 전달하며, active의 이전 값과 현재 값의 차이가 일정 시간동안 0보다 큰 값을 유지하면 DPM 수행을 중단하도록 수행 정보를 수행 제어부(940)에 전달한다(1250).
도 13은 수행 제어부(940)의 동작을 설명하기 위한 도면이다.
도 13에 도시한 바와 같이, 수행 제어부(940)는 태스크 변경 시점에서 주 제어부(910)로부터 호출되며 이때 태스크 id를 전달받는다(1310). 또한 수행 제어부(940)는 정책 관리부(950)로부터 수행 정보를 전달받는다(1320). 그리고 전달받은 수행 정보에 따라 코어를 제어한다(1330).
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
도 1은 일반적인 DPS를 이용한 전력 관리 방법을 도시한 도면이다.
도 2는 일반적인 DVFS를 통한 전력 관리 방법을 도시한 도면이다.
도 3은 일반적인 DPM을 이용한 전력 관리 방법을 도시한 도면이다.
도 4는 일반적인 DPM을 위한 저전력 제어 장치의 블록도이다.
도 5는 ARM11 계열의 4개의 코어를 가지는 멀티 코어 CPU가 리눅스 상에서 동작하는 경우의 CPU 사용량의 변화 추이를 나타낸 도면이다.
도 6은 도 5와 동일한 시나리오 상에서 CPU 사용량과 메모리 정보인 mapped 정보의 변화 추이를 나타낸 도면이다.
도 7은 도 5와 동일한 시나리오 상에서 CPU 사용량과 메모리 정보인 액티브(active) 정보의 변화 추이를 나타낸 도면이다.
도 8은 도 5와 동일한 시나리오 상에서 CPU 사용량과 thread 정보인 nr_threads의 변화 추이를 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 DRM 장치의 구성을 도시한 도면이다.
도 10은 본 발명의 실시예에 따른 DRM 장치의 주 제어부의 동작을 설명하기 위한 도면이다.
도 11은 본 발명의 실시예에 따른 DRM 장치의 태스크 정보 제어부의 동작을 설명하기 위한 도면이다.
도 12는 본 발명의 실시예에 따른 DRM 장치의 정책 관리부의 동작을 설명하기 위한 도면이다.
도 13은 본 발명의 실시예에 따른 DRM 장치의 수행 제어부의 동작을 설명하기 위한 도면이다.
Claims (10)
- 저전력 멀티코어 시스템에서 전력을 제어하는 장치에 있어서,태스크의 시작 혹은 종료 시 OS(Operation System) 커넬에서 태스크 정보를 전달 받아서 처리하는 주 제어부와,상기 주 제어부로부터 상기 태스크 정보를 전달 받고, 상기 태스크 정보 중 현재의 CPU 사용량을 이용하여 이후의 CPU 사용량을 예측하고, 상기 태스크 정보 중 메모리 관련 정보들을 모니터링하는 태스크 정보 제어부와,상기 태스크 정보 제어부로부터 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 전달받고, 상기 예측된 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 바탕으로 전력 제어를 위한 정책을 수립하는 정책 관리부와,상기 정책 관리부에서 수립된 정책에 따라 멀티코어의 온오프를 제어하는 수행 제어부를 포함하는 전력 제어 장치.
- 제1항에 있어서,상기 태스크 정보 제어부는,상기 이후의 CPU 사용량을 예측하는 CPU 사용량 예측부와,상기 메모리 관련 정보들을 모니터링하는 시스템 정보 모니터링부를 포함하는 전력 제어 장치.
- 제2항에 있어서,상기 시스템 정보 모니터링부는,상기 현재의 CPU 사용량의 변화량과 상기 모니터링한 메모리 관련 정보들을 비교하고 상기 비교한 결과값을 상기 정책 관리부로 전달하는 전력 제어 장치.
- 제3항에 있어서,상기 정책 관리부는,상기 CPU 사용량의 변화량이 소정 범위 이내인 경우에, 상기 예측된 CPU 사용량을 기준으로 상기 정책을 수립하고,상기 CPU 사용량의 변화량이 소정 범위를 초과하는 경우에, 상기 메모리 관련 정보들을 이용하여 상기 정책을 수립하는 전력 제어 장치.
- 제1항 내지 제4항에 있어서,상기 메모리 관련 정보는,메모리 매핑을 위한 맵드(mapped)와, 버퍼 및 페이지 캐시 메모리의 크기를 나타내는 액티브(active)와, 스레드(thread)의 개수(nr_threads) 중 적어도 하나를 포함하는 전력 제어 장치.
- 제5항에 있어서,상기 정책 관리부는,상기 메모리 관련 정보 중 상기 액티브의 변화량이 점진적으로 증가하는 경우에, 상기 멀티코어의 제어를 중지하는 정책을 수립하는 전력 제어 장치.
- 저전력 멀티코어 시스템에서 전력을 제어하는 방법에 있어서,태스크의 시작 혹은 종료 시 OS(Operation System) 커넬에서 태스크 정보를 전달받는 과정과,상기 태스크 정보 중 현재의 CPU 사용량을 이용하여 이후의 CPU 사용량을 예측하고, 상기 태스크 정보 중 메모리 관련 정보들을 모니터링하고, 상기 현재의 CPU 사용량의 변화량과 상기 모니터링한 메모리 관련 정보들을 비교하는 과정과,상기 예측된 이후의 CPU 사용량과 상기 모니터링한 메모리 관련 정보들을 바탕으로 전력 제어를 위한 정책을 수립하는 과정과,상기 수립한 정책에 따라 멀티코어의 온오프를 제어하는 과정을 포함하는 전력 제어 방법.
- 제7항에 있어서,상기 정책을 수립하는 과정은,상기 현재의 CPU 사용량의 변화량이 소정 범위 이내인 경우에, 상기 예측된 CPU 사용량을 기준으로 상기 정책을 수립하고,상기 CPU 사용량의 변화량이 소정 범위를 초과하는 경우에, 상기 메모리 관련 정보들을 이용하여 상기 정책을 수립하는 전력 제어 방법.
- 제7항 또는 제8항에 있어서,상기 메모리 관련 정보는,메모리 매핑을 위한 맵드(mapped)와, 버퍼 및 페이지 캐시 메모리의 크기를 나타내는 액티브(active)와, 스레드(thread)의 개수(nr_threads) 중 적어도 하나를 포함하는 전력 제어 방법.
- 제9항에 있어서,상기 정책을 수립하는 과정은,상기 메모리 관련 정보 중 상기 액티브의 변화량이 점진적으로 증가하는 경우에, 상기 멀티코어의 제어를 중지하는 정책을 수립하는 전력 제어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090106418A KR101648978B1 (ko) | 2009-11-05 | 2009-11-05 | 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 |
PCT/KR2010/007775 WO2011056007A2 (en) | 2009-11-05 | 2010-11-04 | Method and apparatus for controlling power in low-power multi-core system |
US13/508,149 US9256508B2 (en) | 2009-11-05 | 2010-11-04 | Method and apparatus for controlling power in low-power multi-core system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090106418A KR101648978B1 (ko) | 2009-11-05 | 2009-11-05 | 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110049409A true KR20110049409A (ko) | 2011-05-12 |
KR101648978B1 KR101648978B1 (ko) | 2016-08-18 |
Family
ID=43970563
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090106418A KR101648978B1 (ko) | 2009-11-05 | 2009-11-05 | 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9256508B2 (ko) |
KR (1) | KR101648978B1 (ko) |
WO (1) | WO2011056007A2 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9043629B2 (en) | 2012-06-15 | 2015-05-26 | Samsung Electronics Co., Ltd. | Multi-cluster processing system and method of operating the same |
US9477296B2 (en) | 2012-02-24 | 2016-10-25 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling power of electronic device having multi-core |
KR20170061047A (ko) * | 2015-11-25 | 2017-06-02 | 한국전자통신연구원 | 전력 스케줄링 방법 및 장치 |
KR102213673B1 (ko) * | 2020-09-28 | 2021-02-08 | (주)대우루컴즈 | 인공지능 기반 코어파킹을 이용한 전력절감 컴퓨터 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DK2457153T3 (da) * | 2009-07-20 | 2017-02-06 | Schneider Electric It Corp | Metode og system til effektanalyse |
US8862930B2 (en) * | 2010-11-24 | 2014-10-14 | Red Hat, Inc. | Crash recovery memory reservation based on device drivers for an operational kernel |
US20120278459A1 (en) * | 2011-04-26 | 2012-11-01 | Cisco Technology, Inc. | Throttling bursty cpu utilization due to bursty tcp flows |
DE112011106028B4 (de) | 2011-12-21 | 2020-01-02 | Intel Corporation | Mechanismus zum Bereitstellen von Energiesparoptionen für Computergeräte |
KR101991682B1 (ko) | 2012-08-29 | 2019-06-21 | 삼성전자 주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
CN103823716A (zh) * | 2012-09-21 | 2014-05-28 | 宏达国际电子股份有限公司 | 具多重中央处理单元的电子装置及其效能管理方法 |
JP6051924B2 (ja) * | 2013-02-21 | 2016-12-27 | 富士通株式会社 | 情報処理装置の制御方法、制御プログラム、情報処理装置 |
CN106354564A (zh) * | 2016-08-31 | 2017-01-25 | 深圳天珑无线科技有限公司 | 系统资源分配方法和系统资源分配系统 |
KR101783148B1 (ko) | 2016-10-17 | 2017-09-28 | 고려대학교 산학협력단 | 에너지 효율적인 모바일 웹 브라우징을 위한 태스크 스케줄링 방법 이를 수행하는 모바일 기기 |
US10552280B2 (en) | 2017-12-14 | 2020-02-04 | Microsoft Technology Licensing, Llc | In-band monitor in system management mode context for improved cloud platform availability |
CN111538382B (zh) * | 2020-04-16 | 2021-08-27 | 深圳比特微电子科技有限公司 | 一种数字货币矿机的启动方法、装置和数字货币矿机 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123264A1 (en) * | 2003-07-15 | 2006-06-08 | Intel Corporation | Method, system, and apparatus for improving multi-core processor performance |
US20090249094A1 (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6901522B2 (en) | 2001-06-07 | 2005-05-31 | Intel Corporation | System and method for reducing power consumption in multiprocessor system |
US7861068B2 (en) * | 2006-03-07 | 2010-12-28 | Intel Corporation | Method and apparatus for using dynamic workload characteristics to control CPU frequency and voltage scaling |
US20090106571A1 (en) | 2007-10-21 | 2009-04-23 | Anthony Low | Systems and Methods to Adaptively Load Balance User Sessions to Reduce Energy Consumption |
US8281160B1 (en) * | 2008-04-17 | 2012-10-02 | Marvell International Ltd. | Method and system for selecting an operating frequency for a chip to provide a desired overall power dissipation value for the chip |
US8499230B2 (en) * | 2008-05-07 | 2013-07-30 | Lsi Corporation | Critical path monitor for an integrated circuit and method of operation thereof |
KR101004761B1 (ko) | 2008-10-07 | 2011-01-04 | 주식회사 엠에이치알 | 컴퓨터 절전 방법 |
KR101620103B1 (ko) * | 2009-10-21 | 2016-05-13 | 삼성전자주식회사 | 멀티 코어 시스템에서 중앙 처리 장치의 전력 제어 장치 및 방법 |
US8671413B2 (en) * | 2010-01-11 | 2014-03-11 | Qualcomm Incorporated | System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device |
-
2009
- 2009-11-05 KR KR1020090106418A patent/KR101648978B1/ko active IP Right Grant
-
2010
- 2010-11-04 WO PCT/KR2010/007775 patent/WO2011056007A2/en active Application Filing
- 2010-11-04 US US13/508,149 patent/US9256508B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060123264A1 (en) * | 2003-07-15 | 2006-06-08 | Intel Corporation | Method, system, and apparatus for improving multi-core processor performance |
US20090249094A1 (en) * | 2008-03-28 | 2009-10-01 | Microsoft Corporation | Power-aware thread scheduling and dynamic use of processors |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9477296B2 (en) | 2012-02-24 | 2016-10-25 | Samsung Electronics Co., Ltd. | Apparatus and method for controlling power of electronic device having multi-core |
US9043629B2 (en) | 2012-06-15 | 2015-05-26 | Samsung Electronics Co., Ltd. | Multi-cluster processing system and method of operating the same |
KR20170061047A (ko) * | 2015-11-25 | 2017-06-02 | 한국전자통신연구원 | 전력 스케줄링 방법 및 장치 |
KR102213673B1 (ko) * | 2020-09-28 | 2021-02-08 | (주)대우루컴즈 | 인공지능 기반 코어파킹을 이용한 전력절감 컴퓨터 |
Also Published As
Publication number | Publication date |
---|---|
WO2011056007A3 (en) | 2011-09-29 |
US20120216054A1 (en) | 2012-08-23 |
WO2011056007A2 (en) | 2011-05-12 |
US9256508B2 (en) | 2016-02-09 |
KR101648978B1 (ko) | 2016-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20110049409A (ko) | 저전력 멀티코어 시스템에서의 전력 제어 방법 및 장치 | |
KR101471303B1 (ko) | 그래픽 처리 장치를 위한 전력 관리 장치 및 방법 | |
US8443209B2 (en) | Throttling computational units according to performance sensitivity | |
US9176572B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
KR101864980B1 (ko) | 가상 머신 전력 관리 | |
US9618997B2 (en) | Controlling a turbo mode frequency of a processor | |
EP3245587B1 (en) | Systems and methods for providing dynamic cache extension in a multi-cluster heterogeneous processor architecture | |
US9104411B2 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
US9996400B2 (en) | Multi-CPU system and multi-CPU system scaling method | |
US8447994B2 (en) | Altering performance of computational units heterogeneously according to performance sensitivity | |
EP2513746B1 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
KR101629155B1 (ko) | 전력-인식 스레드 스케줄링 및 프로세서들의 동적 사용 | |
US8307369B2 (en) | Power control method for virtual machine and virtual computer system | |
US20100153763A1 (en) | Method and apparatus to modulate multi-core usage for energy efficient platform operations | |
KR101842016B1 (ko) | 멀티 코어 환경에서의 동적 전력 제어방법 | |
WO2011011673A1 (en) | Throttling computational units according to performance sensitivity | |
WO2008124455A3 (en) | Priority based throttling for power/performance quality of service | |
US9274852B2 (en) | Apparatus and method for managing virtual processing unit | |
WO2014123587A1 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines | |
KR20120024204A (ko) | 가상화 시스템 및 그 가상화 시스템에서 자원 할당 방법 | |
US9106662B2 (en) | Method and apparatus for controlling load allocation in cluster system | |
US20100235669A1 (en) | Memory power consumption reduction system, and method and program therefor | |
CN107636563B (zh) | 用于通过腾空cpu和存储器的子集来降低功率的方法和系统 | |
US9075609B2 (en) | Power controller, processor and method of power management | |
EP2915020A1 (en) | System and method for controlling central processing unit power with guaranteed transient deadlines |
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: 20190730 Year of fee payment: 4 |