KR20170016712A - 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치 - Google Patents

시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치 Download PDF

Info

Publication number
KR20170016712A
KR20170016712A KR1020150110162A KR20150110162A KR20170016712A KR 20170016712 A KR20170016712 A KR 20170016712A KR 1020150110162 A KR1020150110162 A KR 1020150110162A KR 20150110162 A KR20150110162 A KR 20150110162A KR 20170016712 A KR20170016712 A KR 20170016712A
Authority
KR
South Korea
Prior art keywords
power saving
idle state
idle
elapsed time
executed
Prior art date
Application number
KR1020150110162A
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 KR1020150110162A priority Critical patent/KR20170016712A/ko
Priority to US15/179,407 priority patent/US20170038824A1/en
Publication of KR20170016712A publication Critical patent/KR20170016712A/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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
    • 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
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • 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)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)

Abstract

시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치가 개시된다. 본 발명에 따른 대기 전력 절감 장치는 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득하는 태스크 정보 획득부; 상기 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하는 유휴 상태 감지부; 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 상기 적어도 하나의 장치의 전력 절감 실행 여부를 판단하는 전력 절감 판단부; 및 상기 전력 절감을 실행하는 경우에 상기 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 상기 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행하는 전력 절감 실행부를 포함한다.

Description

시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치 {METHOD OF REDUCING STANDBY POWER USING DETECTION OF IDLE STATE OF SYSTEM AND APPARATUS USING THE SAME}
본 발명은 데스크탑 컴퓨터, 서버 및 모바일 기기와 같은 IT 장치에 대한 대기 전력 절감 기술에 관한 것으로, 특히 유휴 상태로의 진입을 감지하고 패턴을 분석하여 대기 전력 절감 효과를 향상시킬 수 있는 대기 전력 절감 기술에 관한 것이다.
최근 배터리 사용 시간이 이슈인 모바일 기기의 급증은 물론, 환경과 에너지 문제로 인해 서버와 PC 분야까지 전력 절감에 대한 관심이 확대되고 있다. 또한, 장비 및 장치의 스마트화 현상이 가속화됨에 따라 운영체제가 구동되는 IT 기기 및 단말의 숫자가 급격히 증가하여 에너지를 절감할 수 있는 운영체제 관련 기술에 대한 관심 또한 빠른 속도로 증가하고 있는 추세이다.
데스크탑, 서버, 모바일 기기 등 최신 IT 기기에 탑재된 프로세서들은 시스템 유휴 시 소모되는 전력 및 에너지를 감소하기 위해 저전력 유휴 상태(low power idle state)를 지원하며, 이는 프로세서의 C-state로 표현 및 관리된다. C-state는 ACPI 표준으로 정의되어 있으며, 더욱 높은 대기 전력 절감 효과를 위해 vendor-specific C-state를 추가로 정의하여 운영하기도 한다. 이를 활용하여 IT 기기의 시스템 상황에 맞게 단계별 유휴 상태 관리가 가능하다.
시스템의 대기 전력을 최소화하기 위해서는 가장 높은 단계의 C-state에 진입하도록 유도하는 것이 좋으나, 유휴 상태로의 진입 및 활동 상태 복귀 시 C-state의 단계가 높을수록(Deep Idle) 큰 부하(latency)가 발생하게 된다. 따라서, 진입 및 복귀에 따른 부하를 면밀하게 고려하여 시스템 유휴 시간에 적합한 C-state 단계를 찾아내는 작업이 매우 중요하다. 예를 들어, 시스템 유휴 시간이 3ms 밖에 되지 않는 경우에 진입 및 복귀에 각각 2ms가 소요되는 C-state 단계에 진입한다면, 전력 절감을 수행하는 시간 부하가 유휴 시간보다 길어지게 되므로 전력 소모량 및 성능 측면에서 오히려 낭비를 초래하게 될 수 있다.
뿐만 아니라, 너무 빈번한 C-state 진입 유도는 특히, 전력 소모 측면에서 역효과를 초래하게 되는 경우가 많다. 예를 들어, 짧은 유휴 시간이 계속 반복되는 상황일 경우에 C-state 단계로 진입 및 복귀함에 따라 발생하는 추가적인 시간 및 전력 부하가 오히려 처리할 태스크 자체의 부하보다도 커지는 경우가 발생할 수 있다. 이와 같은 경우에는 C-state 단계로의 진입을 제한하고 시스템을 활동 상태로 유지시키는 것이 전력 및 성능 측면에서 유리할 수 있다. 이렇듯 높은 단계의 C-state 진입은 충분한 유휴 시간이 보장되는 경우에 한해 방어적으로 허용하는 방식의 관리 기법이 필요하다.
종래 기술은 지나치게 공격적인 C-state 진입 유도로 인해 성능 및 전력 소모량 부하가 증가함에 따라 전력 절감 효과가 떨어지는 문제점을 가지고 있다. 공격적인 C-state 진입 유도는 유휴 시간 예측의 정확도가 매우 높아야 함을 가정하고 운용할 수 있는 방법으로, 예측된 유휴 시간보다 짧을 경우 성능 및 전력 면에서 상당한 불이익을 감수할 수 밖에 없다.
따라서, 종래 기술의 문제점을 극복하기 위해 유휴 모드 진입 경과 시간 및 시스템 유휴 모드 진입 패턴을 고려하여 불필요한 C-state 단계의 진입을 방지함으로써 전력 및 성능 불이익을 최소화할 수 있고, 동시에 대기 전력 절감 효과를 향상시킬 수 있는 대기 전력 절감 기술이 절실하게 대두된다.
한국 공개 특허 제2013-0087583호, 2013년 8월 6일 공개(명칭: 컴퓨터 플랫폼의 시스템 전력 상태를 전환하는 방법, 장치 및 시스템)
본 발명의 목적은 불필요한 저전력 모드 진입을 방지함으로써 전력 및 성능 불이익을 최소화할 수 있는 대기 전력 절감 방법을 제공하는 것이다.
또한, 본 발명의 목적은 유휴 상태의 경과 시간을 기반으로 효율적으로 대기 전력 절감을 수행함으로써 대기 전력 절감 효과를 향상시키는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치는, 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득하는 태스크 정보 획득부; 상기 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하는 유휴 상태 감지부; 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 상기 적어도 하나의 장치의 전력 절감 실행 여부를 판단하는 전력 절감 판단부; 및 상기 전력 절감을 실행하는 것으로 판단된 경우에 상기 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 상기 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행하는 전력 절감 실행부를 포함한다.
이 때, 전력 절감 판단부는 상기 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 상기 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 상기 전력 절감을 실행하는 것으로 판단할 수 있다.
이 때, 전력 절감 판단부는 상기 적어도 하나의 장치가 상기 유휴 상태로 진입하였을 경우에 상기 전력 절감 실행 여부를 판단할 수 있다.
이 때, 전력 절감 판단부는 상기 적어도 하나의 장치에 상응하는 시스템이 실행될 때 상기 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 상기 전력 절감의 실행횟수를 조절하는 재진입플래그 및 상기 발생 경과 시간 중 적어도 하나를 고려하여 상기 유휴 카운터를 증가시키는 유휴 카운터 관리부; 및 상기 시스템이 실행될 때 상기 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 상기 전력 절감의 실행을 해제한 뒤 상기 재진입플래그를 변경하는 재진입플래그 관리부를 포함할 수 있다.
이 때, 대기 전력 절감 장치는 상기 전력 절감을 실행한 후 상기 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 상기 전력 절감의 실행을 해제하는 전력 절감 해제부를 더 포함할 수 있다.
이 때, 전력 절감 판단부는 상기 적어도 하나의 장치가 상기 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 상기 기설정된 기준 진입횟수를 결정할 수 있다.
이 때, 전력 절감 실행부는 상기 장치 관리기를 통해 상기 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 상기 저전력 모드를 실행할 수 있다.
이 때, 전력 절감 해제부는 Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 상기 이벤트 발생을 감지할 수 있다.
이 때, 발생 경과 시간은 현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은, 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득하는 단계; 상기 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하는 단계; 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 상기 적어도 하나의 장치의 전력 절감 실행 여부를 판단하는 단계; 및 상기 전력 절감을 실행하는 것으로 판단된 경우에 상기 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 상기 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행하는 단계를 포함한다.
이 때, 판단하는 단계는 상기 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 상기 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 상기 전력 절감을 실행하는 것으로 판단할 수 있다.
이 때, 판단하는 단계는 상기 적어도 하나의 장치가 상기 유휴 상태로 진입하였을 경우에 상기 전력 절감 실행 여부를 판단할 수 있다.
이 때, 판단하는 단계는 상기 유휴 카운터를 상기 적어도 하나의 장치에 상응하는 시스템이 실행될 때 기설정된 초기 카운터 값으로 초기화하는 단계; 상기 전력 절감의 실행횟수를 조절하는 재진입플래그 및 상기 발생 경과 시간 중 적어도 하나를 고려하여 상기 유휴 카운터를 증가시키는 단계; 상기 재진입플래그를 상기 시스템이 실행될 때 기설정된 초기 플래그 값으로 초기화하는 단계; 및 상기 전력 절감의 실행을 해제한 뒤 상기 재진입플래그를 변경하는 단계를 포함할 수 있다.
이 때, 대기 전력 절감 방법은 상기 전력 절감을 실행한 후 상기 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 상기 전력 절감의 실행을 해제하는 단계를 더 포함할 수 있다.
이 때, 판단하는 단계는 상기 적어도 하나의 장치가 상기 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 상기 기설정된 기준 진입횟수를 결정하는 단계를 포함할 수 있다.
이 때, 실행하는 단계는 상기 장치 관리기를 통해 상기 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 상기 저전력 모드를 실행할 수 있다.
이 때, 해제하는 단계는 Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 상기 이벤트 발생을 감지할 수 있다.
이 때, 발생 경과 시간은 현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응할 수 있다.
본 발명에 따르면, 불필요한 저전력 모드 진입을 방지함으로써 전력 및 성능 불이익을 최소화할 수 있는 대기 전력 절감 방법을 제공할 수 있다.
또한, 본 발명은 유휴 상태의 경과 시간을 기반으로 효율적으로 대기 전력 절감을 수행함으로써 대기 전력 절감 효과를 향상시킬 수 있다.
도 1은 운영체제 내부에 위치한 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치를 나타낸 도면이다.
도 2는 도 1에 도시된 대기 전력 절감 장치의 일 예를 나타낸 블록도이다.
도 3은 도 2에 도시된 전력 절감 판단부의 일 예를 나타낸 블록도이다.
도 4는 본 발명의 일실시예에 따른 대기 전력 절감 장치가 적용될 대상 시스템의 구조를 나타낸 도면이다.
도 5는 프로세서의 유휴 상태 수준에 따른 전력 절감을 나타낸 도면이다.
도 6은 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법을 나타낸 동작 흐름도이다.
도 7은 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법을 상세하게 나타낸 동작 흐름도이다.
도 8은 도 7에 도시된 전력 절감 실행 여부를 판단하는 단계를 상세하게 나타낸 동작 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 운영체제 내부에 위치한 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치를 나타낸 도면이다.
도 1을 참조하면, 운영체제 내부에 위치한 본 발명의 일실시예에 따른 대기 전력 절감 장치(110)는 운영체제 내부에 위치하여 타 컴포넌트와 연동될 수 있다.
전력 절감 장치(110)는 태스크 처리를 관리하는 CPU 스케줄러(120)로부터 태스크 정보를 획득할 수 있다.
또한, 전력 절감 장치(110)는 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지할 수 있다.
또한, 전력 절감 장치(110)는 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 적어도 하나의 장치의 전력 절감 실행 여부를 판단할 수 있다.
이 때, 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 전력 절감을 실행하는 것으로 판단할 수 있다.
이 때, 적어도 하나의 장치가 유휴 상태로 진입하였을 경우에 전력 절감 실행 여부를 판단할 수 있다.
이 때, 적어도 하나의 장치에 상응하는 시스템이 실행될 때 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 전력 절감의 실행횟수를 조절하는 재진입플래그 및 발생 경과 시간 중 적어도 하나를 고려하여 유휴 카운터를 증가시킬 수 있다.
이 때, 시스템이 실행될 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 전력 절감의 실행을 해제한 뒤 재진입플래그를 변경할 수 있다.
이 때, 적어도 하나의 장치가 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 기설정된 기준 진입횟수를 결정할 수 있다.
이 때, 발생 경과 시간은 현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응할 수 있다.
또한, 전력 절감 장치(110)는 전력 절감을 실행하는 것으로 판단된 경우에 적어도 하나의 장치에 상응하는 장치 관리기(130-1~ 130-4)를 이용하여 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행할 수 있다.
이 때, 장치 관리기(130-1~ 130-4)를 통해 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 저전력 모드를 실행할 수 있다.
또한, 전력 절감 장치(110)는 전력 절감을 실행한 후 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 전력 절감의 실행을 해제할 수 있다.
이 때, Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 이벤트 발생을 감지할 수 있다.
시스템의 유휴 상태는 시스템이 수행하거나 처리할 태스크가 없는 상태를 의미할 수 있으며, CPU 스케줄러(120)가 이를 감지하여 대기 전력 절감 장치(110)에게 알려주면, 대기 전력 절감 장치(110)는 운영체제 내의 장치 관리기(130-1~ 130-4)를 제어하여 적어도 하나의 장치를 저전력 모드에 진입하도록 유도할 수 있다. 즉, 프로세서가 C-state 단계로 진입하는 동작 관리 또한 장치 관리기(130-1~ 130-4)를 통해 수행될 수 있다.
도 2는 도 1에 도시된 대기 전력 절감 장치의 일 예를 나타낸 블록도이다.
도 2를 참조하면, 도 1에 도시된 대기 전력 절감 장치(110)는 태스크 정보 획득부(210), 유휴 상태 감지부(220), 전력 절감 판단부(230), 전력 절감 실행부(240) 및 전력 절감 해제부(250)를 포함할 수 있다.
태스크 정보 획득부(210)는 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득할 수 있다. 예를 들어, CPU의 태스크를 관리하는 CPU 스케줄러를 통해 현재 수행되거나 처리되어야 할 태스크의 목록을 획득하거나, 또는 처리할 태스크가 남아있는지 여부에 대한 정보를 획득할 수도 있다.
유휴 상태 감지부(220)는 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지할 수 있다. 예를 들어, 적어도 하나의 장치에 대해서 처리할 태스크가 존재하지 않는 경우에 이를 유휴 상태로 판단하고 유휴 상태로 진입하기 위한 별도의 인젝터(Injector)를 호출하여 유휴 상태로 진입할 수 있다. 이 때, 유휴 상태로 진입하기 위한 인젝터의 호출여부를 감지하여 유휴 상태로 진입하는 것을 감지할 수 있다.
전력 절감 판단부(230)는 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 적어도 하나의 장치의 전력 절감 실행 여부를 판단할 수 있다.
이 때, 유휴 상태로 진입했음에도 불구하고 전력 절감을 실행할지 여부를 판단하는 이유는 전력 절감을 수행함으로써 발생할 수 있는 부하의 크기가 전력 절감에 따라 절약되는 성능보다 클 수도 있기 때문일 수 있다. 따라서, 전력 절감 수행을 통해 오히려 낭비를 초래하지 않도록 하기 위해 유휴 카운터와 발생 경과 시간과 같은 요소들을 이용하여 효율적으로 전력 절감을 수행할 수 있는 경우를 판단하여 전력 절감을 수행할 수 있다.
이 때, 유휴 카운터는 유휴 상태로 진입하는 횟수가 많을 경우에 지나친 저전력 모드 진입으로 인한 불필요한 부하 발생을 방지하기 위해 유지하는 카운터 값일 수 있다.
이 때, 발생 경과 시간은 현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응할 수 있다. 예를 들어, 유휴 상태가 발생할 때마다 시간을 체크하고, 체크된 시간 사이의 간격을 통해 발생 경과 시간을 계산할 수 있다.
또한, 유휴 상태로 진입하여 발생 경과 시간을 계산한 뒤에는 다음 유휴 상태가 발생할 경우를 대비하여 다시 현재 시간을 이전 시간으로 설정할 수 있다.
이 때, 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 전력 절감을 실행하는 것으로 판단할 수 있다. 예를 들어, 적어도 하나의 장치가 유휴 상태에 진입하였으나 전력 절감은 실행하지 않으면서 서서히 증가한 유휴 카운터가 기설정된 기준 진입횟수를 초과하면 전력 절감을 실행할 수 있다. 또한, 기설정된 기준 진입횟수는 초과하지 않았으나 발생 경과 시간이 기설정된 기준 경과 시간을 초과하였다면 전력 절감을 실행할 수 있다.
이 때, 전력 절감의 실행 여부 판단을 위해 시스템의 효율적인 유휴 관리를 위한 DeepIdleInjector를 호출할 수 있다. 실제 전력 절감을 위한 Action은 이 DeepIdleInjector에서 이루어지게 되며, 대기 전력 절감 장치(110)는 이를 지원하는 프레임워크의 형태로 구현될 수 있다. 리눅스의 예를 들자면, 대기 전력 절감 장치(110)는 cpuidle 이라는 프레임워크로 설계되어 있으며, 그 하단부에 실제 CPU 대기 전력 절감을 하부 모듈이 연동되는데, DeepIdleInjector가 이에 상응하는 것일 수 있다.
이 때, 적어도 하나의 장치가 유휴 상태로 진입하였을 경우에 전력 절감 실행 여부를 판단할 수 있다. 즉, 적어도 하나의 장치가 처리할 태스크가 하나도 없는 상태에만 전력 절감을 실행할 수 있기 때문에 유휴 상태로 진입하였을 때에만 전력 절감을 실행할지 여부를 판단할 수 있다.
이 때, 적어도 하나의 장치에 상응하는 시스템이 실행될 때 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 전력 절감의 실행 횟수를 조절하는 재진입플래그 및 발생 경과 시간 중 적어도 하나를 고려하여 유휴 카운터를 증가시킬 수 있다. 예를 들어, 운영체제가 부팅될 때 운영체제 초기화 루틴 내부에서 대기 전력 절감 장치(110)의 초기화 루틴을 호출함으로써 대기 전력 절감 장치(110)가 초기화 될 수 있다. 이 때, 유휴 카운터 및 재진입플래그를 초기화 할 수 있다. 또한, 현재 시각을 체크하여 이전 시각 정보에 저장함으로써 초기화 호출 시각을 저장한 후 종료할 수 있다.
또한, 발생 경과 시간이 기설정된 기준 경과 시간보다 작거나 같으면서 재진입플래그가 0에 상응하는 경우에 유휴 카운터를 증가시킬 수 있다.
이 때, 시스템이 실행될 때 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 전력 절감의 실행을 해제한 뒤 재진입플래그를 변경할 수 있다.
이 때, 재진입플래그는 근래에 DeepIdleInjector가 빈번히 호출될 경우에 실제로 전력 절감 또한 빈번하게 실행되어 대기 전력 절감 장치(110)가 비효율적으로 동작하는 것을 방지하기 위한 것으로, 저전력 모드를 실행할지 여부를 판별하기 위해 사용되는 플래그 값에 상응할 수 있다.
또한, 재진입플래그는 초기화 루틴에서 1에 상응하는 값으로 초기화되고, 전력 절감을 실행하고 난 뒤에 0에 상응하는 값으로 변경 될 수 있다.
또한, 이전 유휴 상태 진입시각 즉, 이전 DeepIdleInjector 진입 시각으로부터 현재 시각까지 경과된 시간인 발생 경과 시간을 계산하여 미리 설정된 기준 경과 시간보다 크면 재진입플래그를 초기화에 상응하는 값인 1로 설정할 수 있다.
이 때, 적어도 하나의 장치가 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 기설정된 기준 진입횟수를 결정할 수 있다. 즉, 프로세서에서 제공하는 C-state의 단계별 진입 및 복귀 부하에 비례하여 기설정된 기준 진입횟수를 설정함으로써 필요 이상으로 낮은 C-state 단계 진입으로 인한 불필요한 부하 발생을 방지할 수 있도록 할 수 있다.
전력 절감 실행부(240)는 전력 절감을 실행하는 것으로 판단된 경우에 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행할 수 있다.
이 때, 장치 관리기를 통해 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 저전력 모드를 실행할 수 있다.
예를 들어, IdleInjector와 같은 루틴을 호출하여 저전력 모드를 실행할 수 있으며, IdleInjector는 실제 저전력 모드로의 진입을 유도하는 루틴으로, 장치 관리기를 통해 하드웨어에서 지원되는 대기 모드 지원 수단을 활용할 수 있다. X86 시스템의 경우, MWAIT 어셈블리 명령어를 호출함으로써 단계별 C-state 진입이 가능하며, ARM 시스템의 경우 WFI(Wait For Interrupt) 명령어를 통해 저전력 모드 진입이 가능할 수 있다. 하드웨어에서 지원되는 대기 모드 지원 수단이 없을 경우, NOP/HLT와 같은 명령어를 통해 대기 상태를 유지할 수 있도록 할 수 있다.
또한, 하드웨어 수준 대기 모드 지원 수단은 대기 전력 절감 장치(110)의 초기화 단계에서 자동으로 조사 및 IdleInjector에 등록하여 사용할 수도 있다. 한 예로 X86 시스템의 경우, MWAIT 명령어 지원 여부는 EAX 레지스터를 1로 설정한 후 CPUID 명령어 호출 시 ECX 레지스터의 3번째 bit 값을 조사하여 판별할 수 있다.
전력 절감 해제부(250)는 전력 절감을 실행한 후 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 전력 절감의 실행을 해제할 수 있다.
이 때, Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 이벤트 발생을 감지할 수 있다.
이 때, 하드웨어 수준 대기 모드 지원 수단 조사 및 등록 과정을 설명하면, 저전력 모드 진입 후 시스템이 wakeup되어 활동 모드로 복귀하는 작업은 특정 이벤트 발생시 trigger되면서 이루어질 수 있으며, 이 이벤트는 하드웨어 및 시스템 별로 다양하나 일반적으로 Non-Maskable 인터럽트 발생, System Management 인터럽트 발생, INIT 이벤트 발생, BINT 이벤트 발생, MCERR 이벤트 발생, Fault 인터럽트 발생, Abort 인터럽트 발생, Machine Check 인터럽트 발생, TLB Invalidation 발생 및 SoftIRQ로 등록한 이벤트 발생 등이 해당될 수 있다.
도 3은 도 2에 도시된 전력 절감 판단부의 일 예를 나타낸 블록도이다.
도 3을 참조하면, 도 2에 도시된 전력 절감 판단부(230)는 유휴 카운터 관리부(310) 및 재진입플래그 관리부(320)를 포함할 수 있다.
유휴 카운터 관리부(310)는 적어도 하나의 장치에 상응하는 시스템이 실행될 때 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 전력 절감의 실행횟수를 조절하는 재진입플래그 및 발생 경과 시간 중 적어도 하나를 고려하여 유휴 카운터를 증가시킬 수 있다.
예를 들어, 운영체제가 부팅될 때 운영체제 초기화 루틴 내부에서 대기 전력 절감 장치의 초기화 루틴을 호출함으로써 대기 전력 절감 장치(110)가 초기화 될 수 있다. 이 때, 유휴 카운터 및 재진입플래그를 초기화 할 수 있다. 또한, 현재 시각을 체크하여 이전 시각 정보에 저장함으로써 초기화 호출 시각을 저장한 후 종료할 수 있다.
또한, 발생 경과 시간이 기설정된 기준 경과 시간보다 작거나 같으면서 재진입플래그가 0에 상응하는 경우에 유휴 카운터를 증가시킬 수 있다.
재진입플래그 관리부(320)는 시스템이 실행될 때 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 전력 절감의 실행을 해제한 뒤 재진입플래그를 변경할 수 있다.
이 때, 재진입플래그는 근래에 DeepIdleInjector가 빈번히 호출될 경우에 실제로 전력 절감 또한 빈번하게 실행되어 대기 전력 절감 장치가 비효율적으로 동작하는 것을 방지하기 위한 것으로, 저전력 모드를 실행할지 여부를 판별하기 위해 사용되는 플래그 값에 상응할 수 있다.
또한, 재진입플래그는 초기화 루틴에서 1에 상응하는 값으로 초기화되고, 전력 절감을 실행하고 난 뒤에 0에 상응하는 값으로 변경 될 수 있다.
또한, 이전 유휴 상태 진입시각 즉, 이전 DeepIdleInjector 진입 시각으로부터 현재 시각까지 경과된 시간인 발생 경과 시간을 계산하여 미리 설정된 기준 경과 시간보다 크면 재진입플래그를 초기화에 상응하는 값인 1로 설정할 수 있다.
이 때, 적어도 하나의 장치가 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 기설정된 기준 진입횟수를 결정할 수 있다. 즉, 프로세서에서 제공하는 C-state의 단계별 진입 및 복귀 부하에 비례하여 기설정된 기준 진입횟수를 설정함으로써 필요 이상으로 낮은 C-state 단계 진입으로 인한 불필요한 부하 발생을 방지할 수 있도록 할 수 있다.
도 4는 본 발명의 일실시예에 따른 대기 전력 절감 장치가 적용될 대상 시스템의 구조를 나타낸 도면이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 대기 전력 절감 장치가 적용될 대상 시스템은 CPU, 메모리, 스토리지 및 네트워크 등으로 구성된 하드웨어 (420-1~ 420-4)의 상단에 운영체제 커널이 존재하여 장치 관리기(430-1~ 430-4)를 통해 하드웨어(420-1~ 420-4)를 포함한 시스템 자원을 관리할 수 있다.
이 때, 사용자 응용 프로그램(410-1~ 410-4)에게 서비스를 제공할 수 있다.
이 때, 사용자 응용 프로그램(410-1~ 410-4)은 시스템 수준의 라이브러리 및 미들웨어를 포함하는 개념으로, 사용자에게 직접적인 서비스를 제공하기 위한 일련의 기능들을 정의 및 구현하며 하위 운영체제 커널과는 시스템 호출 및 기정의된 시스템 인터페이스를 통해 통신 및 소통이 이루어질 수 있다.
도 5는 프로세서의 유휴 상태 수준에 따른 전력 절감을 나타낸 도면이다.
도 5를 참조하면, CPU(510)는 코어 1과 코어 4만 저전력 모드에 진입한 모습으로, 나머지 코어, 버스 및 CPU 캐쉬 등의 컴포넌트는 활성화되어 전력을 소모하는 상태일 수 있다.
이에 반해, CPU(520)는 모든 컴포넌트가 저전력 모드에 진입하여 대기 전력 소모량이 CPU(510)에 비해 대폭 감소된 상황임을 알 수 있다.
즉, C-state로 설명하자면 CPU(510)보다 CPU(520)의 C-state 수준 및 단계가 높다고 할 수 있다.
도 6은 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법을 나타낸 동작 흐름도이다.
도 6을 참조하면, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득한다(S610). 예를 들어, CPU의 태스크를 관리하는 CPU 스케줄러를 통해 현재 수행되거나 처리되어야 할 태스크의 목록을 획득하거나, 또는 처리할 태스크가 남아있는지 여부에 대한 정보를 획득할 수도 있다.
또한, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지한다(S620). 예를 들어, 적어도 하나의 장치에 대해서 처리할 태스크가 존재하지 않는 경우에 이를 유휴 상태로 판단하고 유휴 상태로 진입하기 위한 별도의 인젝터(Injector)를 호출하여 유휴 상태로 진입할 수 있다. 이 때, 유휴 상태로 진입하기 위한 인젝터의 호출여부를 감지하여 유휴 상태로 진입하는 것을 감지할 수 있다.
또한, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 적어도 하나의 장치의 전력 절감 실행 여부를 판단한다(S625).
이 때, 유휴 상태로 진입했음에도 불구하고 전력 절감을 실행할지 여부를 판단하는 이유는 전력 절감을 수행함으로써 발생할 수 있는 부하의 크기가 전력 절감에 따라 절약되는 성능보다 클 수도 있기 때문일 수 있다. 따라서, 전력 절감 수행을 통해 오히려 낭비를 초래하지 않도록 하기 위해 유휴 카운터와 발생 경과 시간과 같은 요소들을 이용하여 효율적으로 전력 절감을 수행할 수 있는 경우를 판단하여 전력 절감을 수행할 수 있다.
이 때, 유휴 카운터는 유휴 상태로 진입하는 횟수가 많을 경우에 지나친 저전력 모드 진입으로 인한 불필요한 부하 발생을 방지하기 위해 유지하는 카운터 값일 수 있다.
이 때, 발생 경과 시간은 현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응할 수 있다. 예를 들어, 유휴 상태가 발생할 때마다 시간을 체크하고, 체크된 시간 사이의 간격을 통해 발생 경과 시간을 계산할 수 있다.
또한, 유휴 상태로 진입하여 발생 경과 시간을 계산한 뒤에는 다음 유휴 상태가 발생할 경우를 대비하여 다시 현재 시간을 이전 시간으로 설정할 수 있다.
이 때, 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 전력 절감을 실행하는 것으로 판단할 수 있다. 예를 들어, 적어도 하나의 장치가 유휴 상태에 진입하였으나 전력 절감은 실행하지 않으면서 서서히 증가한 유휴 카운터가 기설정된 기준 진입횟수를 초과하면 전력 절감을 실행할 수 있다. 또한, 기설정된 기준 진입횟수는 초과하지 않았으나 발생 경과 시간이 기설정된 기준 경과 시간을 초과하였다면 전력 절감을 실행할 수 있다.
이 때, 전력 절감의 실행 여부 판단을 위해 시스템의 효율적인 유휴 관리를 위한 DeepIdleInjector를 호출할 수 있다. 실제 전력 절감을 위한 Action은 이 DeepIdleInjector에서 이루어지게 되며, 대기 전력 절감 장치(110)는 이를 지원하는 프레임워크의 형태로 구현될 수 있다. 리눅스의 예를 들자면, 대기 전력 절감 장치(110)는 cpuidle 이라는 프레임워크로 설계되어 있으며, 그 하단부에 실제 CPU 대기 전력 절감을 하부 모듈이 연동되는데, DeepIdleInjector가 이에 상응하는 것일 수 있다.
이 때, 적어도 하나의 장치가 유휴 상태로 진입하였을 경우에 전력 절감 실행 여부를 판단할 수 있다. 즉, 적어도 하나의 장치가 처리할 태스크가 하나도 없는 상태에만 전력 절감을 실행할 수 있기 때문에 유휴 상태로 진입하였을 때에만 전력 절감을 실행할지 여부를 판단할 수 있다.
이 때, 적어도 하나의 장치에 상응하는 시스템이 실행될 때 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 전력 절감의 실행 횟수를 조절하는 재진입플래그 및 발생 경과 시간 중 적어도 하나를 고려하여 유휴 카운터를 증가시킬 수 있다. 예를 들어, 운영체제가 부팅될 때 운영체제 초기화 루틴 내부에서 대기 전력 절감 장치(110)의 초기화 루틴을 호출함으로써 대기 전력 절감 장치(110)가 초기화 될 수 있다. 이 때, 유휴 카운터 및 재진입플래그를 초기화 할 수 있다. 또한, 현재 시각을 체크하여 이전 시각 정보에 저장함으로써 초기화 호출 시각을 저장한 후 종료할 수 있다.
또한, 발생 경과 시간이 기설정된 기준 경과 시간보다 작거나 같으면서 재진입플래그가 0에 상응하는 경우에 유휴 카운터를 증가시킬 수 있다.
이 때, 시스템이 실행될 때 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 전력 절감의 실행을 해제한 뒤 재진입플래그를 변경할 수 있다.
이 때, 재진입플래그는 근래에 DeepIdleInjector가 빈번히 호출될 경우에 실제로 전력 절감 또한 빈번하게 실행되어 대기 전력 절감 장치(110)가 비효율적으로 동작하는 것을 방지하기 위한 것으로, 저전력 모드를 실행할지 여부를 판별하기 위해 사용되는 플래그 값에 상응할 수 있다.
또한, 재진입플래그는 초기화 루틴에서 1에 상응하는 값으로 초기화되고, 전력 절감을 실행하고 난 뒤에 0에 상응하는 값으로 변경 될 수 있다.
또한, 이전 유휴 상태 진입시각 즉, 이전 DeepIdleInjector 진입 시각으로부터 현재 시각까지 경과된 시간인 발생 경과 시간을 계산하여 미리 설정된 기준 경과 시간보다 크면 재진입플래그를 초기화에 상응하는 값인 1로 설정할 수 있다.
이 때, 적어도 하나의 장치가 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 기설정된 기준 진입횟수를 결정할 수 있다. 즉, 프로세서에서 제공하는 C-state의 단계별 진입 및 복귀 부하에 비례하여 기설정된 기준 진입횟수를 설정함으로써 필요 이상으로 낮은 C-state 단계 진입으로 인한 불필요한 부하 발생을 방지할 수 있도록 할 수 있다.
단계(S625)의 판단결과 전력 절감을 실행하면, 또한, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행한다(S630).
이 때, 장치 관리기를 통해 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 저전력 모드를 실행할 수 있다.
예를 들어, IdleInjector와 같은 루틴을 호출하여 저전력 모드를 실행할 수 있으며, IdleInjector는 실제 저전력 모드로의 진입을 유도하는 루틴으로, 장치 관리기를 통해 하드웨어에서 지원되는 대기 모드 지원 수단을 활용할 수 있다. X86 시스템의 경우, MWAIT 어셈블리 명령어를 호출함으로써 단계별 C-state 진입이 가능하며, ARM 시스템의 경우 WFI(Wait For Interrupt) 명령어를 통해 저전력 모드 진입이 가능할 수 있다. 하드웨어에서 지원되는 대기 모드 지원 수단이 없을 경우, NOP/HLT와 같은 명령어를 통해 대기 상태를 유지할 수 있도록 할 수 있다.
또한, 하드웨어 수준 대기 모드 지원 수단은 대기 전력 절감 장치의 초기화 단계에서 자동으로 조사 및 IdleInjector에 등록하여 사용할 수도 있다. 한 예로 X86 시스템의 경우, MWAIT 명령어 지원 여부는 EAX 레지스터를 1로 설정한 후 CPUID 명령어 호출 시 ECX 레지스터의 3번째 bit 값을 조사하여 판별할 수 있다.
또한, 단계(S625)의 판단결과 전력 절감을 실행하지 않으면, 대기 전력 절감을 위한 동작을 종료하거나, 앞으로 발생할 유휴 상태에 대비하여 대기할 수 있다.
또한, 도 6에는 도시하지 아니하였으나, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 전력 절감을 실행한 후 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 전력 절감의 실행을 해제할 수 있다.
이 때, Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 이벤트 발생을 감지할 수 있다.
이 때, 하드웨어 수준 대기 모드 지원 수단 조사 및 등록 과정을 설명하면, 저전력 모드 진입 후 시스템이 wakeup되어 활동 모드로 복귀하는 작업은 특정 이벤트 발생시 trigger되면서 이루어질 수 있으며, 이 이벤트는 하드웨어 및 시스템 별로 다양하나 일반적으로 Non-Maskable 인터럽트 발생, System Management 인터럽트 발생, INIT 이벤트 발생, BINT 이벤트 발생, MCERR 이벤트 발생, Fault 인터럽트 발생, Abort 인터럽트 발생, Machine Check 인터럽트 발생, TLB Invalidation 발생 및 SoftIRQ로 등록한 이벤트 발생 등이 해당될 수 있다.
도 7은 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법을 상세하게 나타낸 동작 흐름도이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법은 운영체제를 부팅한다(S710).
이 후, 대기 전력 절감 장치를 초기화함으로써 유휴 카운터와 재진입플래그를 초기화한다(S720). 예를 들어, 운영체제가 부팅될 때 운영체제 초기화 루틴 내부에서 대기 전력 절감 장치의 초기화 루틴을 호출함으로써 대기 전력 절감 장치가 초기화될 수 있다. 이 때, 유휴 카운터를 0으로 재진입플래그를 1로 초기화할 수 있다.
이 후, 이전 시각의 정보에 현재 시각을 저장한다(S730). 즉, 초기화 호출 시각을 저장할 수 있다.
이 후, 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득한다(S740).
이 후, 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하여, 적어도 하나의 장치가 유휴 상태에 진입하는지 판단한다(S745).
단계(S745)의 판단결과 유휴 상태에 진입하면, 유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 적어도 하나의 장치의 전력 절감 실행 여부를 판단한다(S755).
또한, 단계(S745)의 판단결과 유휴 상태에 진입하지 않으면, 계속해서 태스크 정보를 획득하여 유휴 상태로 진입하는지 여부를 감지한다.
단계(S755)의 판단결과 전력 절감을 실행하면, 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행한다(S760).
또한, 단계(S755)의 판단결과 전력 절감을 실행하지 않으면, 계속해서 태스크 정보를 획득하여 유휴 상태로 진입하는지 여부를 감지한다.
이 후, 저전력 모드 상태에서 이벤트가 발생하였는지 판단한다(S765).
이 때, Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 이벤트 발생을 감지하여 발생여부를 판단할 수 있다.
단계(S765)의 판단결과 이벤트가 발생하면, 시스템을 Wake Up하여 복구한다(S770).
이 때, 저전력 모드 진입 후 시스템이 wakeup되어 활동 모드로 복귀하는 작업은 특정 이벤트 발생시 trigger되면서 이루어질 수 있다.
단계(S765)의 판단결과 이벤트가 발생하지 않으면, 계속해서 저전력 모드를 유지한다.
이 후, 시스템을 복구한 뒤 재진입플래그의 값을 0으로 변경하고, 유휴 카운터를 초기화한다(S780). 이 후, 다시 태스크 정보를 획득하여 유휴 상태로 진입하는지 여부를 감지한다.
도 8은 도 7에 도시된 전력 절감 실행 여부를 판단하는 단계를 상세하게 나타낸 동작 흐름도이다.
도 8을 참조하면, 도 7에 도시된 전력 절감 실행 여부를 판단하는 단계는 현재 시각을 체크하여(S810), 발생 경과 시간을 계산한다(S820). 즉, 이전에 DeepIdleInjector로 진입한 시각으로부터 경과된 시간에 상응하는 발생 경과 시간을 계산할 수 있다.
이 후, 발생 경과 시간이 기설정된 기준 경과 시간보다 작거나 같은지 여부를 판단한다(S825).
단계(S825)의 판단결과 발생 경과 시간이 기설정된 기준 경과 시간보다 작거나 같으면, 재진입플래그가 0에 상응하는지 판단한다(S835).
단계(S835)의 판단결과 재진입플래그가 0이면, 유휴 카운터를 1 증가시키고(S840), 이전 시각 정보에 현재 시각을 저장한다(S850).
또한, 단계(S825)의 판단결과 발생 경과 시간이 기설정된 기준 경과 시간보다 크면, 재진입플래그를 1로 저장하고(S860), 이전 시각 정보에 현재 시각을 저장한다(S850).
이 때, 재진입플래그는 근래에 DeepIdleInjector가 빈번히 호출될 경우에 효율적으로 저전력 모드를 실행하기 위해 사용되는 플래그 값으로, 초기화 루틴에서 1로 초기화될 수 있다.
또한, 유휴 카운터는 DeepIdleInjector 진입 횟수가 많을 경우에 지나친 저전력 모드의 실행으로 인한 불필요한 부하 발생을 방지하기 위해 유지하는 카운터 값으로, 저전력 모드에 진입한 뒤 복귀할 때마다 0으로 초기화될 수 있다.
이 후, 유휴 카운터가 기설정된 기준 진입 횟수보다 크거나 또는 발생 경과 시간이 기설정된 기준 경고 시간을 초과하는지 여부를 판단한다(S865).
단계(S865)의 판단결과 유휴 카운터가 기설정된 기준 진입 횟수보다 크거나 또는 발생 경과 시간이 기설정된 기준 경고 시간을 초과하면, 전력 절감을 실행하는 것으로 판단한다(S870).
단계(S865)의 판단결과 유휴 카운터가 기설정된 기준 진입 횟수보다 크지 않거나 또는 발생 경과 시간이 기설정된 기준 경고 시간을 초과하지 않으면, 전력 절감을 실행하지 않는 것으로 판단하고 종료한다.
이상에서와 같이 본 발명에 따른 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치는 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
110: 대기 전력 절감 장치 120: CPU 스케줄러
130-1~ 130-4, 430-1~ 430-4: 장치 관리기
210: 태스크 정보 획득부 220: 유휴 상태 감지부
230: 전력 절감 판단부 240: 전력 절감 실행부
250: 전력 절감 해제부 310: 유휴 카운터 관리부
320: 재진입플래그 관리부 410-1~ 410-4: 사용자 응용 프로그램
420-1~ 420-4: 하드웨어 510, 520: CPU

Claims (18)

  1. 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득하는 태스크 정보 획득부;
    상기 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하는 유휴 상태 감지부;
    유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 상기 적어도 하나의 장치의 전력 절감 실행 여부를 판단하는 전력 절감 판단부; 및
    상기 전력 절감을 실행하는 것으로 판단된 경우에 상기 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 상기 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행하는 전력 절감 실행부
    를 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  2. 청구항 1에 있어서,
    상기 전력 절감 판단부는
    상기 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 상기 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 상기 전력 절감을 실행하는 것으로 판단하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  3. 청구항 2에 있어서
    상기 전력 절감 판단부는
    상기 적어도 하나의 장치가 상기 유휴 상태로 진입하였을 경우에 상기 전력 절감 실행 여부를 판단하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  4. 청구항 3에 있어서,
    상기 전력 절감 판단부는
    상기 적어도 하나의 장치에 상응하는 시스템이 실행될 때 상기 유휴 카운터를 기설정된 초기 카운터 값으로 초기화하고, 상기 전력 절감의 실행횟수를 조절하는 재진입플래그 및 상기 발생 경과 시간 중 적어도 하나를 고려하여 상기 유휴 카운터를 증가시키는 유휴 카운터 관리부; 및
    상기 시스템이 실행될 때 상기 재진입플래그를 기설정된 초기 플래그 값으로 초기화하고, 상기 전력 절감의 실행을 해제한 뒤 상기 재진입플래그를 변경하는 재진입플래그 관리부를 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  5. 청구항 1에 있어서,
    상기 대기 전력 절감 장치는
    상기 전력 절감을 실행한 후 상기 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 상기 전력 절감의 실행을 해제하는 전력 절감 해제부를 더 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  6. 청구항 5에 있어서,
    상기 전력 절감 판단부는
    상기 적어도 하나의 장치가 상기 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 상기 기설정된 기준 진입횟수를 결정하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  7. 청구항 6에 있어서,
    상기 전력 절감 실행부는
    상기 장치 관리기를 통해 상기 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 상기 저전력 모드를 실행하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  8. 청구항 5에 있어서,
    상기 전력 절감 해제부는
    Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 상기 이벤트 발생을 감지하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  9. 청구항 1에 있어서,
    상기 발생 경과 시간은
    현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 장치.
  10. 태스크의 처리를 관리하는 스케줄러로부터 태스크 정보를 획득하는 단계;
    상기 태스크 정보를 기반으로 적어도 하나의 장치가 처리할 태스크가 없는 유휴 상태로 진입하는 것을 감지하는 단계;
    유휴 카운터 및 발생 경과 시간 중 적어도 하나를 고려하여 상기 적어도 하나의 장치의 전력 절감 실행 여부를 판단하는 단계; 및
    상기 전력 절감을 실행하는 것으로 판단된 경우에 상기 적어도 하나의 장치에 상응하는 장치 관리기를 이용하여 상기 적어도 하나의 장치의 대기 전력을 감소하는 저전력 모드를 실행하는 단계
    를 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  11. 청구항 10에 있어서,
    상기 판단하는 단계는
    상기 유휴 카운터가 기설정된 기준 진입횟수를 초과하는 경우 및 상기 발생 경과 시간이 기설정된 기준 경과 시간을 초과하는 경우 중 적어도 하나의 경우가 발생하면 상기 전력 절감을 실행하는 것으로 판단하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  12. 청구항 11에 있어서,
    상기 판단하는 단계는
    상기 적어도 하나의 장치가 상기 유휴 상태로 진입하였을 경우에 상기 전력 절감 실행 여부를 판단하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  13. 청구항 12에 있어서,
    상기 판단하는 단계는
    상기 유휴 카운터를 상기 적어도 하나의 장치에 상응하는 시스템이 실행될 때 기설정된 초기 카운터 값으로 초기화하는 단계;
    상기 전력 절감의 실행횟수를 조절하는 재진입플래그 및 상기 발생 경과 시간 중 적어도 하나를 고려하여 상기 유휴 카운터를 증가시키는 단계;
    상기 재진입플래그를 상기 시스템이 실행될 때 기설정된 초기 플래그 값으로 초기화하는 단계; 및
    상기 전력 절감의 실행을 해제한 뒤 상기 재진입플래그를 변경하는 단계를 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  14. 청구항 10에 있어서,
    상기 대기 전력 절감 방법은
    상기 전력 절감을 실행한 후 상기 적어도 하나의 장치에 상응하는 이벤트 발생을 감지하여 상기 전력 절감의 실행을 해제하는 단계를 더 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  15. 청구항 14에 있어서,
    상기 판단하는 단계는
    상기 적어도 하나의 장치가 상기 저전력 모드에 상응하는 C-state 단계에 진입 및 복귀할 때 발생하는 부하를 고려하여 상기 기설정된 기준 진입횟수를 결정하는 단계를 포함하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  16. 청구항 15에 있어서,
    상기 실행하는 단계는
    상기 장치 관리기를 통해 상기 시스템의 하드웨어에서 지원되는 대기 모드 지원 수단을 활용하여 상기 저전력 모드를 실행하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  17. 청구항 14에 있어서,
    상기 해제하는 단계는
    Non-Maskable 인터럽트, System Management 인터럽트, INIT 이벤트, BINT 이벤트, MCERR 이벤트, Fault 인터럽트, Abort 인터럽트, Machine Check 인터럽트, TLB Invalidation 및 SoftIRQ로 등록한 이벤트 중 적어도 하나를 포함하는 상기 이벤트 발생을 감지하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
  18. 청구항 10에 있어서,
    상기 발생 경과 시간은
    현재 유휴 상태와 이전 유휴 상태 사이의 경과 시간에 상응하는 것을 특징으로 하는 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법.
KR1020150110162A 2015-08-04 2015-08-04 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치 KR20170016712A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150110162A KR20170016712A (ko) 2015-08-04 2015-08-04 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치
US15/179,407 US20170038824A1 (en) 2015-08-04 2016-06-10 Method and apparatus for reducing consumption of standby power through detection of idle state of system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150110162A KR20170016712A (ko) 2015-08-04 2015-08-04 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치

Publications (1)

Publication Number Publication Date
KR20170016712A true KR20170016712A (ko) 2017-02-14

Family

ID=58053441

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150110162A KR20170016712A (ko) 2015-08-04 2015-08-04 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치

Country Status (2)

Country Link
US (1) US20170038824A1 (ko)
KR (1) KR20170016712A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019016252A (ja) * 2017-07-10 2019-01-31 レノボ・シンガポール・プライベート・リミテッド 温度管理システム、情報処理装置および制御方法
US11455024B2 (en) 2019-04-10 2022-09-27 Red Hat, Inc. Idle state estimation by scheduler

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130087583A (ko) 2010-12-23 2013-08-06 인텔 코오퍼레이션 컴퓨터 플랫폼의 시스템 전력 상태를 전환하는 방법, 장치 및 시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130087583A (ko) 2010-12-23 2013-08-06 인텔 코오퍼레이션 컴퓨터 플랫폼의 시스템 전력 상태를 전환하는 방법, 장치 및 시스템

Also Published As

Publication number Publication date
US20170038824A1 (en) 2017-02-09

Similar Documents

Publication Publication Date Title
JP7416706B2 (ja) プロセッサの最適スロットルのためのシステム、機器、及び方法
US11422615B2 (en) Platform power consumption reduction via power state switching
US10254818B2 (en) Priority based application event control (PAEC) to reduce power consumption
US9720730B2 (en) Providing an asymmetric multicore processor system transparently to an operating system
EP2513751B1 (en) System and method for controlling central processing unit power in a virtualized system
KR101599319B1 (ko) 멀티코어 플랫폼에서의 제한형 부트 기법
US10324519B2 (en) Controlling forced idle state operation in a processor
EP2972826B1 (en) Multi-core binary translation task processing
WO2020197870A1 (en) System, apparatus and method for power license control of a processor
US20110022356A1 (en) Determining performance sensitivities of computational units
US11429415B2 (en) Dynamic tuning of hypervisor for high-performance virtual machines
US9152473B2 (en) Table driven multiple passive trip platform passive thermal management
KR20170016712A (ko) 시스템의 유휴 상태 감지를 통한 대기 전력 절감 방법 및 이를 이용한 장치
Oboril et al. High-resolution online power monitoring for modern microprocessors
US10180855B1 (en) System and method for controlling idle state of operating system
WO2016094030A1 (en) Synchronization in a computing device
EP4073646A1 (en) Method of task transition between heterogenous processors
Singh et al. Thermal aware power save policy for hot and cold jobs
EP3974983A1 (en) System, apparatus and method for providing power monitoring isolation in a processor
Liu et al. Sensible energy accounting with abstract metering for multicore systems
Chen et al. The power-saving approach by critical section detections of Multi-cores Embedded Systems