KR101509938B1 - 태스크 스케줄링 방법 및 장치 - Google Patents

태스크 스케줄링 방법 및 장치 Download PDF

Info

Publication number
KR101509938B1
KR101509938B1 KR20130121313A KR20130121313A KR101509938B1 KR 101509938 B1 KR101509938 B1 KR 101509938B1 KR 20130121313 A KR20130121313 A KR 20130121313A KR 20130121313 A KR20130121313 A KR 20130121313A KR 101509938 B1 KR101509938 B1 KR 101509938B1
Authority
KR
South Korea
Prior art keywords
core
cores
application
power cost
frequency
Prior art date
Application number
KR20130121313A
Other languages
English (en)
Inventor
정성우
김민용
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR20130121313A priority Critical patent/KR101509938B1/ko
Application granted granted Critical
Publication of KR101509938B1 publication Critical patent/KR101509938B1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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 or look ahead
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

본 발명은 비동기식 대칭형 멀티 코어가 구비된 전자 기기에서의 태스크 스케줄링 방법 및 장치에 관한 것이다.
본 발명의 일실시예에 의한 태스크 스케줄링 방법은 멀티 코어가 구비된 전자 기기에서의 태스크 스케줄링 방법에 있어서, 비주기적 어플리케이션 수행에 필요한 코어 개수에 대한 제1프로파일 정보, 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보, 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보가 저장된 데이터베이스를 유지하는 단계; 상기 프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하는 단계; 상기 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출하는 단계; 및 상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정하는 단계를 포함할 수 있다.

Description

태스크 스케줄링 방법 및 장치{METHOD AND APPARATUS FOR TASK SCHEDULING}
본 발명은 태스크 스케줄링 방법 및 장치에 관한 것으로, 보다 상세하게는 비동기식 대칭형 멀티 코어가 구비된 전자 기기에서의 태스크 스케줄링 방법 및 장치에 관한 것이다.
종래의 동기식 대칭형 멀티코어 프로세서와는 다르게, 비동기식 대칭형 멀티코어 프로세서에서는 각각의 CPU 코어가 다른 주파수로 동작할 수 있다.
따라서, 여러 CPU 코어 중 하나의 코어에 로드가 적은 경우 해당 코어만 낮은 주파수로 수행함으로써 전력 소모 에너지 측면에서 많은 이득을 얻을 수 있다.
하지만, 비동기식 대칭형 멀티코어 프로세서에 탑재된 태스크 스케줄러는 기존 동기식 대칭형 멀티코어 프로세서의 스케줄링 기법을 거의 그대로 사용하고 있기 때문에, 비동기식 대칭형 멀티코어 프로세서를 통해 얻을 수 있는 전력 절감을 모두 이끌어내지 못하고 있는 실정이다.
특히, 종래 비동기식 멀티코어 프로세서의 스케줄러는 하나의 코어라도 일정 수준 이상 로드가 있으면 수행할 작업이 없어도 코어를 끄지 않기 때문에, 수행할 작업이 없음에도 불필요하게 CPU 코어가 켜져있는 현상이 발생한다. 또한, CPU 주파수를 매우 쉽게 높이도록 설정되어 있기 때문에, 불필요하게 CPU 주파수를 높여서 전력소모가 늘어나는 문제점이 발생한다.
대한민국 공개특허 제10-2013-0062999호는 프로세서의 복수의 프로세서 코어의 성능(예를 들어, 실행 성능 및/또는 전력 소비 성능)에 관한 정보가 계수기 및/또는 테이블 내에 저장(및 트래킹)되고, 프로세서 내의 로직은 저장된 정보에 기반하여 어떤 프로세서 코어가 애플리케이션을 실행해야 하는지를 판단하는 점을 개시하고 있다.
하지만 상기 대한민국 공개특허 제10-2013-0062999호는 어플리케이션을 수행하는 실제 하드웨어의 특성을 고려하여 코어를 배치하는 기술에 대해서는 개시되어 있지 않다.
본 발명의 목적은 어플리케이션을 수행하는 실제 하드웨어의 특성을 고려하여 수행할 어플리케이션에게 필요한 최적의 코어 및 해당 코어의 주파수를 결정할 수 있는 태스크 스케줄링 방법 및 장치를 제공하는데 있다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, 멀티 코어가 구비된 전자 기기에서의 태스크 스케줄링 방법에 있어서, 비주기적 어플리케이션 수행에 필요한 코어 개수에 대한 제1프로파일 정보, 주기적 어플리케이션의 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보, 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보가 저장된 데이터베이스를 유지하는 단계; 상기 프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하는 단계; 상기 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출하는 단계; 및 상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정하는 단계를 포함하는 태스크 스케줄링 방법이 제공된다.
상기 목적을 달성하기 위해 본 발명의 일실시예에 의하면, 멀티 코어가 구비된 전자 기기의 태스크 스케줄 장치에 있어서, 비주기적 어플리케이션 수행에 필요한 코어 개수에 대한 제1프로파일 정보, 주기적 어플리케이션의 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보, 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 저장하는 데이터베이스; 상기 프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하는 코어 할당부; 상기 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출하는 배치부; 상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정하는 결정부; 및 상기 데이터베이스, 코어 할당부, 배치부, 및 결정부를 제어하는 제어부 포함하는 태스크 스케줄링 장치가 제공된다.
본 발명의 일실시예에 의한 태스크 스케줄링 방법 및 장치는 실제 하드웨어의 특성을 반영하여 수행할 어플리케이션들에게 필요한 최적의 코어 개수 및 각 코어별 주파수를 판별함으로써 전체 전력 및 에너지 소모량을 줄일 수 있다.
도 1은 본 발명의 일실시예와 관련된 태스크 스케줄링 장치의 블록도이다.
도 2는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법의 흐름도이다.
도 3 내지 도 4는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법에서 주기적 어플리케이션을 배치하는 일례를 나타내는 도면이다.
도 5는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법에서 최종 코어 배치 및 주파수를 선택하는 방법을 설명하기 위한 도면이다.
도 6는 도 2에서 비용을 계산하는 방법을 나타내는 흐름도이다.
도 7은 본 발명의 일실시예와 관련된 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 나타내는 도면이다.
도 8은 본 발명의 일실시예와 관련된 코어의 동적 전력 비용 테이블이다.
이하, 본 발명의 일실시예와 관련된 태스크 스케줄링 방법 및 장치에 대해 도면을 참조하여 설명하도록 하겠다.
본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
도 1은 본 발명의 일실시예와 관련된 태스크 스케줄링 장치의 블록도이다.
도시된 바와 같이, 태스크 스케줄링 장치(100)는 데이터베이스(110), 코어 할당부(120), 배치부(130), 결정부(140) 및 제어부(150)를 포함할 수 있다. 상기 태스크 스케줄링 장치(100)는 멀티 코어(multi-core)가 구비된 전자 기기의 일 구성요소일 수 있다. 상기 전자 기기의 예로 이동 단말기가 있다. 상기 이동 단말기는 스마트 폰(smart phone), 노트북 컴퓨터(notebook computer), 디지털방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, 태블릿 PC 등을 포함할 수 있다.
이하 실시예에서 설명하는 멀티 코어는 비동기식 대칭형 멀티 코어 프로세스이다. 대칭형 멀티 코어라 함은 같은 사이즈의 코어가 복수 개 존재하는 것을 의미한다.
데이터베이스(110)에는 어플리케이션에 대한 프로파일 정보가 저장될 수 있다. 어플리케이션에 대한 프로파일 정보에는 어플리케이션의 식별 정보, 어플리케이션 분류 정보 등이 포함될 수 있다. 어플리케이션 분류 정보는 해당 어플리케이션을 주기적 어플리케이션(Periodic Application), 비주기적 어플리케이션(Aperiodic Application), 로드가 매우 낮아 스케줄링 시 무시해도 되는 어플리케이션 등으로 구분할 수 있는 정보를 의미한다.
비주기적 어플리케이션은 시작부터 원하는 수행이 모두 끝마칠 때까지 연속적으로 실행되는 어플리케이션으로 어플리케이션 실행 시간이 늘어나면 안 되는 어플리케이션이다. 비주기적 어플리케이션의 예로 파일 압축, 웹브라우징 등이 있다.
주기적 어플리케이션은 주기적으로 수행되는 어플리케이션으로 서비스 품질만 저하되지 않으면 더 높은 성능을 제공할 필요가 없는 어플리케이션이다. 주기적 어플리케이션의 예로 게임, 동영상 재생 등이 있다.
또한, 상기 어플리케이션에 대한 프로파일 정보는 비주기적 어플리케이션 수행에 필요한 코어(core) 개수에 대한 제1프로파일 정보, 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보 등을 포함할 수 있다.
또한, 상기 데이터베이스(110)는 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보 등을 저장할 수 있다. 동적 전력 비용이란 어플리케이션 수행 시에 코어에서 발생되는 전력 비용(예: 전력에 비례하는 값)을 말하고, 정적 전력 비용이란 코어가 어떤 작업을 하지 않더라도 코어가 온 된 경우에 발생되는 전력 비용을 말한다.
코어 할당부(120)는 상기 제1프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하여, 상기 파악된 코어 수에 맞게 코어를 비주기적 어플리케이션에 할당할 수 있다.
배치부(130)는 전자 기기에 구비된 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출할 수 있다. 상기 가능한 코어의 배치 형태는 남은 코어의 수와 수행할 주기적 어플리케이션의 조합을 통해 결정될 수 있다. 이에 대한 상세한 설명은 후술하도록 하겠다.
결정부(140)는 주기적 어플리케이션 수행에 소모되는 전력 비용이 최소가 되도록 주기적 어플리케이션 수행에 필요한 코어의 최종 배치 형태를 결정할 수 있다. 이 경우, 상기 결정부(140)는 상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정할 수 있다. 코어의 최종 배치 형태를 결정하는 상세한 방법은 후술하도록 하겠다.
제어부(150)는 상기 데이터베이스(110), 코어 할당부(120), 배치부(130) 및 결정부(140)를 전반적으로 제어할 수 있다.
도 2는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법의 흐름도이다.
제어부(150)는 어플리케이션에 대한 프로파일 정보, 코어의 동적 전력 비용 테이블, 코어 수에 따른 정적 전력 비용 정보 등의 저장된 데이터베이스(110)를 유지할 수 있다(S210).
제어부(150)는 어플리케이션 분류 정보에 따라 수행할 어플리케이션을 분류를 파악할 수 있다(S220). 그리고 제어부(150)는 각각의 분류에 맞는 정책을 취할 수 있다. 어플리케이션 분류 정보는 자주 사용되는 어플리케이션들에 대해 사전 프로파일링을 통해 구해질 수 있다. 그리고 구해진 진 어플리케이션 분류 정보는 데이터베이스(110)에 저장될 수 있다. 상기 어플리케이션 분류 정보를 토대로 런타임에 어플리케이션 분류가 판별될 수 있다.
코어 할당부(120)는 상기 제1프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어 수를 파악할 수 있다(S230). 비주기적 어플리케이션은 실행시간이 늘어나면 사용자가 불편을 느끼기 때문에, 상기 코어 할당부(120)는 모든 코어를 점유하고 가장 높은 주파수로 수행되는 경우 대비 실행시간이 늘어나지 않는 최소 코어 수의 코어를 비주기적 어플리케이션 수행에 할당한다. 예를 들어, 비주기적 어플리케이션은 모든 코어를 점유하는 경우 대비, 실행시간 저하가 5% 이내가 되게 하는 최소 수의 코어를 온전히 점유하고 Application-aware DVFS(Dynamic Voltage and Frequency Scaling)로 수행될 수 있다. 비주기적 어플리케이션 수행 시의 주파수는 로드에 따라 스케일링 될 수 있다.
배치부(130)는 멀티 코어에서 상기 코어 할당부(120)에서 파악된 코어 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션의 수를 고려하여 가능한 코어의 배치 형태를 산출할 수 있다(S240). 가능한 코어의 배치 형태는 어플리케이션을 모두 함께 수행하는 경우부터 모두 따로(수행할 주기적 어플리케이션의 수가 주기적 어플리케이션을 수행할 수 있는 코어의 수보다 적은 경우에) 수행하는 경우까지의 모든 배치 형태를 의미한다. 주기적 어플리케이션이 비주기적 어플리케이션을 수행하는 코어에 배치되면 서로 서비스 품질과 실행 시간에 손해가 발생할 수 있기 때문에, 주기적 어플리케이션은 비주기적 어플리케이션이 수행되고 있지 않은 코어에서 수행한다.
도 3 내지 도 4는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법에서 주기적 어플리케이션을 배치하는 일례를 나타내는 도면이다.
도 3 내지 도 4는 하나의 비주기적 어플리케이션과 두 개의 주기적 어플리케이션이 실행되는 경우를 나타낸다. 본 실시예는 제1프로파일 정보를 통해 비주기적 어플리케이션 수행에 필요한 코어의 수가 하나인 경우이다.
도 4는 하나의 코어에 두 개의 주기적 어플리케이션이 함께 배치된 경우를 나타내고, 도 5는 두 개의 코어 각각에 두 개의 주기적 어플리케이션이 따로 배치된 경우를 나타낸다. 주기적 어플리케이션의 경우는 서비스 품질만 저하되지 않으면 더 빨리 수행하더라도 사용자는 아무런 변화를 감지하지 못하는 특징이 있다. 상기 서비스 품질만 저하되지 않을 조건을 서비스 품질 조건이라 한다. 서비스 품질 조건은 코어의 배치 형태에 따라 달라질 수 있다. 그리고 상기 서비스 품질 조건은 사전에 정의될 수 있다. 예를 들어, 도 4와 같은 배치 형태에서의 서비스 품질 보존 조건은 사용 한계값이 80%이고(즉, 해당 코어의 CPU 사용률을 80%를 넘지 않도록 하는 조건)이고, 도 5와 같은 배치 형태에서의 서비스 품질 보존 조건은 사용 한계값이 90%이다(즉, 해당 코어의 CPU 사용률을 90%를 넘지 않도록 하는 조건).
결정부(140)는 상기 산출된 코어의 배치 형태에 따른 전력 비용을 계산할 수 있다(S250). 상기 비용 계산은 코어의 배치 형태뿐만 아니라 해당 코어의 주파수도 함께 고려하여 수행될 수 있다. 즉, 결정부(140)는 코어의 배치 형태 및 주파수에 따라 케이스를 구분하여 비용을 계산할 수 있다. 이 경우, 서비스 품질 보존 조건을 만족하지 않는 케이스에 대해서는 해당 케이스는 비용을 계산하지 않고, 폐기할 수 있다. 비용을 계산하는 구체적인 방법에 대해서는 후술하도록 하겠다.
그리고 결정부(140)는 계산된 케이스 중 비용이 최소가 되는 배치 형태 및 주파수(즉, 비용이 최소가 되는 케이스)를 최종 코어의 배치 형태 및 주파수로 결정할 수 있다(S260).
도 5는 본 발명의 일실시예와 관련된 태스크 스케줄링 방법에서 최종 코어 배치 및 주파수를 선택하는 방법을 설명하기 위한 도면이다.
본 실시예에서는 1개의 비주기적 어플리케이션과 2개의 주기적 어플리케이션을 실행하는 경우에 대해 설명하기로 한다. 멀티 코어의 개수가 4개이고, 4개의 코어 중 1개를 비주기적 어플리케이션이 점유하고 남은 3개의 코어에 2개의 주기적 어플리케이션이 사용 가능한 경우, 도 4 및 도 5와 같이 두 가지 형태의 배치 형태가 가능할 수 있다. 각각의 배치 형태에 대해 모든 주파수(Frequency) 조합의 전력 비용이 구해질 수 있다. 12개의 Frequency Step이 지원된다고 할 때 하나의 코어를 2개의 주기적 어플리케이션이 배치되는 경우는 12개의 케이스가 발생하고, 두 개의 코어를 2개의 주기적 어플리케이션이 각각 배치되는 경우는 12x12 = 144가지의 케이스가 발생할 수 있다. 이 경우, 각 배치 형태에서 품질 보존 조건을 만족하지 않는 케이스(Not Feasible)는 비용을 계산하지 않고 폐기할 수 있다. 본 실시예에서는 하나의 코어에 2개의 주기적 어플리케이션을 함께 배치하고 주파수를 702 MHz로 하는 케이스가 전력 비용이 최소가 되므로, 최적의 케이스가 된다.
각각의 배치 형태 및 주파수 조합에 따른 전력 비용을 구할 때에는 각 코어의 주파수와 해당 주파수에서의 CPU 사용률(utilization)을 가지고 동적 전력 비용 테이블을 참조할 수 있다. 물론 사용하는 코어 수에 따른 정적 전력 비용도 고려할 수 있다.
도 6은 도 2에서 비용을 계산하는 방법을 나타내는 흐름도이다.
도 6의 흐름도는 각 주기적 어플리케이션의 배치 및 각 코어에서 사용되는 주파수와 비주기적 어플리케이션을 수행하는 데 사용할 코어 수를 입력으로 받아서 해당 배치의 비용을 계산하는 알고리즘이다.
먼저, 결정부(140)는 각 어플리케이션의 단독으로 수행되는 경우의 주파수에 따른 평균 CPU 사용률 표(사전에 미리 어플리케이션 프로파일링을 통해 구함)를 참조하여 각 코어의 사용률을 계산한다(S610).
도 7은 본 발명의 일실시예와 관련된 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 나타내는 도면이다.
각 코어의 사용률은 함께 수행되는 주기적 어플리케이션의 평균 CPU 사용률을 합산하여 계산한다. 예를 들어, 주기적 어플리케이션인 Amazing Alex와 Music Player가 하나의 코어에 동시에 배치된 경우라면, 해당 코어의 CPU 사용률은 63.6 (red box) + 13.0 (yellow box) = 76.6 ≒ 77(%)이다.
이 경우, 결정부(140)는 어느 하나의 코어의 CPU 사용률이라도 서비스 품질 보존 조건을 만족시키지 못하는 코어가 있는지 판단할 수 있다(S620).
만약, 결정부(140)는 이 과정에서 CPU 사용률 중 어느 한 코어의 CPU 사용률이라도 서비스 품질 보존 조건을 만족시키지 못한다면, 해당 배치는 곧바로 폐기한다.
하지만, 모든 코어가 서비스 품질 보존 조건을 만족시킨다면, 각 코어의 사용률, 주파수 및 코어의 동적 전력 비용 테이블을 참조하여 각 코어의 동적 전력 비용을 계산한다(S630).
도 8은 본 발명의 일실시예와 관련된 코어의 동적 전력 비용 테이블이다. 상기 동적 전력 비용 테이블은 전자 기기에서 실제 측정을 통해 생성된 것이다.
도시된 코어의 동적 전력 비용 테이블에서의 전력 비용은 각각의 케이스를 384MHz에 대해 정규화하고, 10을 곱한 값이다. CPU 사용률은 연속 값이어서 이를 모두 저장할 수 없으므로, 동적 전력 비용 테이블은 10여개의 CPU 사용률에 대해 주파수에 따른 동적 전력 비용(동적 전력 소모에 비례하는 값)을 저장하고 있다. 만약 어떤 코어의 정확한 CPU 사용률이 동적 전력 비용 테이블에 없을 경우에는, 해당 CPU 사용률의 위, 아래 값을 찾아 선형적으로 스케일링 한 값을 사용할 구 있다.
예를 들어, 도 7과 같이 77% CPU 사용률에 대한 동적 전력 비용은 CPU 사용률이 70% 일 때 52의 동적 전력 비용을 가지고, CPU 사용률이 100% 일 때 58의 동적 전력 비용을 가지므로 아래와 같이 구해질 수 있다.
동적 전력 비용: {(58-52)/(100-70)}X7 = 53.4 ≒ 53
상기와 같은 방식으로 동적 전력 비용이 산출되면, 결정부(140)는 배치 형태에서 사용하는 코어 수(비주기적 어플리케이션을 수행하는 데 필요한 코어 수 포함)에 따라 정적 전력(static power) 비용을 합산하여 총 전력 비용을 산출한다(S640).
예를 들어, 코어를 1개 사용할 때 정적 전력 비용이 57이고, 2개 코어를 사용할 때 77, 3개 코어를 사용할 때 87, 4개 코어를 사용할 때 88이라고 가정하자. 상기 정적 전력 비용은 사전에 미리 산출될 수 있다(예: 상기 정적 전력 비용은1개의 코어를 384 MHz-10% 사용률을 정규화하고 10을 곱합 값이다). 도 7의 실시예서 동적 전력 비용은 53이고, 정적 전력 비용은 77(두 개의 코어를 사용하므로)이다. 따라서 총 전력 비용은 53+77=130이 된다.
전술한 방식으로 케이스마다 총 전력 비용을 산출하여 비용이 최소가 되는 케이스를 최적의 케이스로 결정할 수 있다.
그리고 제어부(150)는 결정된 최적의 케이스에 해당하는 배치 형태 및 주파수에 따라 어플리케이션이 수행되게 제어할 수 있다(S270).
전술한 태스크 스케줄 방법은 실제 기기의 주파수/사용률에 따른 전력 소모에 기반한 것이므로, 실제 프로세서의 하드웨어적 특성을 반영하여, 수행할 어플리케이션들에게 필요한 최적의 코어 개수 및 각 코어별 주파수를 판별함으로써 전체 전력 및 에너지 소모량을 줄일 수 있다.
상술한 태스크 스케줄링 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다.
한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
상기와 같이 설명된 태스크 스케줄링 방법 및 장치는 상기 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
100: 태스크 스케줄링 장치
110: 데이터베이스
120: 코어 할당부
130: 배치부
140: 결정부
150: 제어부

Claims (10)

  1. 멀티 코어가 구비된 전자 기기에서의 태스크 스케줄링 방법에 있어서,
    비주기적 어플리케이션 수행에 필요한 코어 개수에 대한 제1프로파일 정보, 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보, 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보가 저장된 데이터베이스를 유지하는 단계;
    상기 제1프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하는 단계;
    상기 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출하는 단계; 및
    상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  2. 제 1 항에 있어서, 상기 최종 배치 형태 및 주파수 결정 단계는
    상기 주기적 어플리케이션의 서비스 품질 보존 조건을 고려하여 수행되는 것을 특징으로 하는 태스크 스케줄링 방법.
  3. 제 2 항에 있어서, 상기 최종 배치 형태 및 주파수 결정 단계는
    상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 전력 비용의 합이 최소인 코어의 배치 형태 및 실행 주파수를 결정하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  4. 제 2 항에 있어서, 상기 최종 배치 형태 및 주파수 결정 단계는
    배치 형태에 따른 코어의 평균 사용률을 계산하는 단계-상기 코어의 평균 사용률은 수행되는 어플리케이션의 평균 CPU 사용률이 합산된 값임-; 및
    상기 계산된 코어의 평균 사용률에 해당하는 동적 전력 비용을 산출하는 단계를 포함하는 것을 특징으로 하는 태스크 스케줄링 방법.
  5. 제 4 항에 있어서, 상기 코어의 평균 사용률은
    상기 제2프로파일 정보에 포함된 상기 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 이용하여 계산되는 것을 특징으로 하는 태스크 스케줄링 방법.
  6. 멀티 코어가 구비된 전자 기기의 태스크 스케줄링 장치에 있어서,
    비주기적 어플리케이션 수행에 필요한 코어 개수에 대한 제1프로파일 정보, 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 포함하는 제2프로파일 정보, 코어의 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 저장하는 데이터베이스;
    상기 제1프로파일 정보를 이용하여 비주기적 어플리케이션 수행에 필요한 코어의 수를 파악하는 코어 할당부;
    상기 멀티 코어에서 상기 파악된 코어의 수를 제외하고 남은 코어의 수와 수행할 주기적 어플리케이션을 고려하여 가능한 코어의 배치 형태를 산출하는 배치부;
    상기 제2프로파일 정보, 상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 상기 주기적 어플리케이션을 수행할 코어의 최종 배치 형태 및 주파수를 결정하는 결정부; 및
    상기 데이터베이스, 코어 할당부, 배치부, 및 결정부를 제어하는 제어부 포함하는 것을 특징으로 하는 태스크 스케줄링 장치.
  7. 제 6 항에 있어서, 상기 결정부는
    상기 주기적 어플리케이션의 서비스 품질 보존 조건을 고려하여 상기 최종 배치 형태 및 주파수를 결정하는 것을 특징으로 하는 태스크 스케줄링 장치.
  8. 제 7 항에 있어서, 상기 결정부는
    상기 동적 전력 비용 테이블 및 코어 수에 따른 정적 전력 비용 정보를 이용하여 전력 비용의 합이 최소인 코어의 배치 형태 및 실행 주파수를 결정하는 것을 특징으로 하는 태스크 스케줄링 장치.
  9. 제 7 항에 있어서, 상기 결정부는
    배치 형태에 따른 코어의 평균 사용률을 계산하고, 상기 계산된 코어의 평균 사용률에 해당하는 동적 전력 비용을 산출하되, 상기 코어의 평균 사용률은 수행되는 어플리케이션의 평균 CPU 사용률이 합산된 값인 것을 특징으로 하는 태스크 스케줄링 장치.
  10. 제 9 항에 있어서, 상기 코어의 평균 사용률은
    상기 제2프로파일 정보에 포함된 상기 주기적 어플리케이션 별 주파수에 따른 CPU 사용률을 이용하여 계산되는 것을 특징으로 하는 태스크 스케줄링 장치.
KR20130121313A 2013-10-11 2013-10-11 태스크 스케줄링 방법 및 장치 KR101509938B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR20130121313A KR101509938B1 (ko) 2013-10-11 2013-10-11 태스크 스케줄링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR20130121313A KR101509938B1 (ko) 2013-10-11 2013-10-11 태스크 스케줄링 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101509938B1 true KR101509938B1 (ko) 2015-04-08

Family

ID=53033856

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130121313A KR101509938B1 (ko) 2013-10-11 2013-10-11 태스크 스케줄링 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101509938B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101755154B1 (ko) * 2016-04-27 2017-07-19 한양대학교 산학협력단 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120055784A (ko) * 2010-11-23 2012-06-01 한국전자통신연구원 멀티 코어 프로세서의 전력 제어 장치 및 방법
KR20130121412A (ko) * 2012-04-27 2013-11-06 성균관대학교산학협력단 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120055784A (ko) * 2010-11-23 2012-06-01 한국전자통신연구원 멀티 코어 프로세서의 전력 제어 장치 및 방법
KR20130121412A (ko) * 2012-04-27 2013-11-06 성균관대학교산학협력단 모바일 장치에서의 비대칭 멀티 프로세서 코어 스케줄링 방법 및 모바일 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
김형육 외 2명. 양극단 제약을 갖는 비주기, 주기 태스크와 메시지 스케줄링. 제어로봇시스템학회 논문지 제11권 제2호, 2005.2, pp.175-185. *
문석환 외 1명. 합성 이용율을 이용한 혼합 태스크 스케줄링. 한국정보통신학회논문지 제14권 제10호, 2010.10, pp.2277-2282. *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10725828B2 (en) 2016-03-18 2020-07-28 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
US11385935B2 (en) 2016-03-18 2022-07-12 Samsung Electronics Co., Ltd. Task scheduling method and electronic device for implementing same
KR101755154B1 (ko) * 2016-04-27 2017-07-19 한양대학교 산학협력단 이종 연산 처리 장치에 대한 동적 작업 할당 방법 및 장치
KR102009425B1 (ko) * 2018-02-09 2019-08-09 울산과학기술원 컴퓨팅 시스템의 성능 관리 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체

Similar Documents

Publication Publication Date Title
JP6412162B2 (ja) グラフィックスフレーム処理において電力消費を低減させるためのcpu/gpu dcvs相互最適化
US9477296B2 (en) Apparatus and method for controlling power of electronic device having multi-core
US8601298B2 (en) System and method for determining optimal operating parameters for conserving power in a portable device from a hypersurface which represents optimal values of the operating parameters under various synthetic workloads
US8909962B2 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
US10444819B2 (en) Techniques to control computational resources for an electronic device
US9665161B2 (en) Method and computer-readable medium for dynamically managing power of multi-core processor
US7552304B2 (en) Cost-aware design-time/run-time memory management methods and apparatus
JP5605960B2 (ja) 周波数変動を低減させて中央処理装置電力を制御するためのシステムおよび方法
JP2017526996A (ja) プロセッサデバイス電力消費を管理するシステムおよび方法
US10445131B2 (en) Core prioritization for heterogeneous on-chip networks
CN105027210A (zh) 电压调节器
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
US9740266B2 (en) Apparatus and method for controlling multi-core of electronic device
KR101509938B1 (ko) 태스크 스케줄링 방법 및 장치
US20140373025A1 (en) Method for allocating process in multi-core environment and apparatus therefor
JP2015505412A (ja) パフォーマンスおよびエネルギー消費量に基づいた効率的なコードディスパッチ
US9507641B1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (PCD)
EP3857335A1 (en) Per-core operating voltage and/or operating frequency determination based on effective core utilization
KR101655030B1 (ko) 태스크 특성 기반의 여유시간 분배를 통한 동적 전압 주파수 스케일링 방법, 그 방법을 실행시키기 위하여 매체에 저장된 컴퓨터프로그램 및 그 매체
US20160147577A1 (en) System and method for adaptive thread control in a portable computing device (pcd)
KR101848164B1 (ko) 모바일 기기에서의 태스크 스케줄링 방법
CN106997311B (zh) 具有多核心处理器的电子装置及多核心处理器的管理方法
KR101427526B1 (ko) 이동 단말기의 전력 관리 방법
WO2014070338A1 (en) System and method for controlling central processing unit power with guaranteed transient deadlines
CN103853307A (zh) 电子装置及降低处理器系统功耗的方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 5