KR20140010671A - 데이터를 기반으로 전력을 관리하는 장치 및 방법 - Google Patents

데이터를 기반으로 전력을 관리하는 장치 및 방법 Download PDF

Info

Publication number
KR20140010671A
KR20140010671A KR1020120077221A KR20120077221A KR20140010671A KR 20140010671 A KR20140010671 A KR 20140010671A KR 1020120077221 A KR1020120077221 A KR 1020120077221A KR 20120077221 A KR20120077221 A KR 20120077221A KR 20140010671 A KR20140010671 A KR 20140010671A
Authority
KR
South Korea
Prior art keywords
power
block
power mode
data
determined
Prior art date
Application number
KR1020120077221A
Other languages
English (en)
Other versions
KR101959252B1 (ko
Inventor
손민영
신용삼
임채석
이승원
이시화
이재돈
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020120077221A priority Critical patent/KR101959252B1/ko
Priority to US13/903,256 priority patent/US9501114B2/en
Priority to CN201310298097.4A priority patent/CN103544003B/zh
Priority to JP2013147936A priority patent/JP6186196B2/ja
Priority to EP13176648.7A priority patent/EP2687944B1/en
Publication of KR20140010671A publication Critical patent/KR20140010671A/ko
Application granted granted Critical
Publication of KR101959252B1 publication Critical patent/KR101959252B1/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
    • 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/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/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4432Reducing the energy consumption
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Charge And Discharge Circuits For Batteries Or The Like (AREA)
  • Remote Monitoring And Control Of Power-Distribution Networks (AREA)

Abstract

데이터를 기반으로 전력을 관리하는 장치 및 방법에 관한 것으로서, 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색하는 코드 세그먼트 검색부, 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정하는 블록 결정부, 및 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 전력 모드 제어부를 포함할 수 있다.

Description

데이터를 기반으로 전력을 관리하는 장치 및 방법{APPARATUS AND METHOD OF MANAGING POWER BASED DATA}
아래의 실시예들은 모바일 장치, 멀티미디어 장치, 임베디드 시스템 등에 있어서, 전력 관리가 필요한 분야에 적용이 가능한 데이터를 기반으로 전력을 관리하는 장치 및 방법에 관한 것이다.
최근의 모바일 등에서는 복잡한 애플리케이션을 구동하기 위해 높은 중앙처리장치의 처리 속도에 대한 요구가 증가하고 있다.
이러한 기술적 요구에 따라 시스템 하드웨어의 소모 자원이 높아지면서 시스템에서 소비하는 전력 역시 증가하고 있다.
이러한 소비전력의 증가는 제한된 전원 용량을 기반으로 운용되는 모바일 사용 시간을 단축시킬 수 있다.
시스템 레벨의 저전력 설계에 관한 연구로 현재는 DPM(dynamic power management)기법과 DVS(dynamic voltage scaling)기법 등이 사용되고 있다.
DPM 기법은 시스템 전체의 전력 소모를 줄이기 위해 해당 디바이스가 유휴(idle) 상태일 경우 디바이스의 전력강하(power-down)로 인한 웨이크업(Wake up)시 전력 소모 오버헤드(overhead)를 극복할 수 있다면, 디바이스를 전력 소모가 낮은 저전력 전력강하 모드로 동작시키는 방식이다.
DVS 기법은 전압 스케줄러가(voltage scheduler) 시간 제약 조건을 만족하는 범위에서 프로세서의 동작 전압을 조절하여 최소한의 에너지를 소모하도록 하는 방식을 채택한다. 또한 주변 장치들의 공급 전압을 감소시켜서 얻을 수 있는 에너지 이득이 없다는 가정 하에서 DVS 기법과 DPM 기법은 트레이드 오프(trade off) 관계를 가진다. 즉, 프로세서 관점에서는 DVS 기법이 프로세서의 속도를 늦추어 동적 전력(dynamic power)소모를 줄일 수 있으나, 이것은 주변 장치의 사용 시간을 늘려 주변 장치의 정적 전력(static power)소모를 늘이는 결과를 초래할 수 있는 것이다. 반면. 주변 장치의 전력 소모를 줄이기 위해서는 태스크가 활성화되는 시간을 짧게 하여 주변 장치를 DPM 기법에 의해 전력강하 모드로 진입시키는 것이 유리하다.
일실시예에 따른 데이터 기반의 전력 관리 장치는 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색하는 코드 세그먼트 검색부, 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정하는 블록 결정부, 및 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 전력 모드 제어부를 포함할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어할 수 있다.
일실시예에 따른 상기 적어도 하나 이상의 코드 세그먼트는 사용자로부터 전력 타입으로 기술된 데이터로 해석될 수 있다. 예를 들어, 상기 적어도 하나 이상의 코드 세그먼트는 변수(variable), 배열(array), 함수(function), 인수(argument), 및 영역(region) 중에서 적어도 하나의 데이터일 수 있다.
일실시예에 따른 상기 블록 결정부는 상기 결정된 적어도 하나 이상의 블록 중에서 선정된 거리 이내에 위치하고, 동일한 사용 전력 타입으로 식별되는 블록들을 수퍼 블록으로 결정할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 수퍼 블록이 시작하는 위치 및 종료하는 위치 내의 코드 세그먼트들에 대해서 상기 동일한 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 상기 블록 결정부는 상기 검색된 적어도 하나 이상의 코드 세그먼트의 크기가 선정된 문턱값 이상인지 여부를 확인하고, 상기 선정된 문턱값 이상인 경우에 상기 검색된 적어도 하나 이상의 코드 세그먼트를 상기 적어도 하나 이상의 블록으로 결정할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 결정된 적어도 하나 이상의 블록의 처리가 종료되면, 상기 사용 전력 타입에 해당하는 전력 모드로 동작시키기 이전으로 전력 모드를 변경할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는 상기 결정된 블록에서 상기 사용 전력 타입의 종류별 개수를 확인하고, 상기 결정된 블록이 상기 확인된 종류별 개수 중에서 가장 많은 개수의 종류에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는, 상기 결정된 블록에서 상기 사용 전력 타입 별로 데이터 각각의 크기를 확인하고, 상기 결정된 블록이 상기 확인된 크기 중에서 가장 큰 크기에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 장치는 상기 결정된 적어도 하나 이상의 블록에 대한 워크로드를 분석하는 워크로드 분석부를 더 포함할 수 있다.
일실시예에 따른 상기 전력 모드 제어부는, 상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 코드 세그먼트 검색부에서, 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색하는 단계, 블록 결정부에서, 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정하는 단계, 및 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 단계를 포함하고, 상기 적어도 하나 이상의 코드 세그먼트는 사용자로부터 전력 타입으로 기술된 데이터일 수 있다.
일실시예에 따른 상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는, 상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어하는 단계를 포함할 수 있다.
일실시예에 따른 상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가하는 단계를 포함할 수 있다.
일실시예에 따른 상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어하는 단계를 포함할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 워크로드 분석부에서, 상기 결정된 적어도 하나 이상의 블록에 대한 워크로드를 분석하는 단계를 더 포함하고, 상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는, 상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어하는 단계를 포함할 수 있다.
도 1은 일실시예에 따른 데이터 기반의 전력 관리 장치를 설명하는 블록도이다.
도 2는 데이터에 사용 전력 타입을 설정하는 실시예를 설명하는 도면이다.
도 3은 사용 전력 타입에 기초하여 블록을 결정하는 실시예를 설명하는 도면이다.
도 4는 다른 일실시예에 따른 데이터 기반의 전력 관리 장치를 설명하는 블록도이다.
도 5는 일실시예에 따른 데이터 기반의 전력 관리 장치가 적용된 시스템 구성의 실시예를 설명하는 도면이다.
도 6은 일실시예에 따른 데이터 기반의 전력 관리 방법을 설명하는 흐름도이다.
도 7은 블록을 결정하는 방법을 보완하여 일실시예에 따른 데이터 기반의 전력 관리 방법을 보다 구체적으로 설명하는 도면이다.
도 8은 결정된 블록을 관련된 전력 모드로 동작하도록 제어하는 방법을 설명하는 도면이다.
도 9는 워크로드를 반영하여 전력 모드를 제어하는 방법을 설명하는 도면이다.
도 10은 전력 모드를 전환하는 방법을 설명하는 도면이다.
도 11은 전력 모드에 따른 메모리 레이아웃을 설명하는 도면이다.
도 12는 입력의 전력 모드에 따른 전력 관리 방법을 설명하는 도면이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
실시예들을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 실시예들의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 실시예들을 적절히 표현하기 위해 사용된 용어들로서, 이는 사용자, 운용자의 의도 또는 해당 기술이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일실시예에 따른 데이터 기반의 전력 관리 장치(100)를 설명하는 블록도이다.
일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 단말 내에서 사용 전력 타입을 이용하여 단말의 전력 관리를 수행할 수 있다.
예를 들어, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 사용 전력 타입을 이용하여 시스템 클럭을 조절함으로써 전력 관리를 수행할 수 있다.
보다 구체적으로, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 저전력(LP, Low Power), 중전력(MP, Middle Power), 고전력(HP, High Power), 범용전력(GP, General Power) 등의 전력 모드에 대응되는 사용 전력 타입을 정의하고, 전체 코드에서 상기 정의된 사용 전력 타입이 사용되는 코드 세그먼트를 검색할 수 있다.
상기 적어도 하나 이상의 코드 세그먼트는, 전체 코드에서 정의되는 변수(variable), 배열(array), 함수(function), 인수(argument), 및 영역(region) 중에서 적어도 하나의 데이터로 해석할 수 있다.
이후, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 상기 검색된 코드 세그먼트와 관련된 부분에 대해서 블록으로 정의하고 상기 블록에 대해서 해당 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 해당 블록에 대해서 워크로드(workload)를 확인하고, 상기 확인된 워크로드를 기초로 가중치(weight)를 산출하며, 상기 산출된 가중치를 클럭에 반영하여 변화시킴으로써, 전력을 제어할 수 있다.
결국, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)를 이용하면, 전력관리를 통해 저전력 시스템을 구현할 수 있다.
기존에는 전체 코드에서 사용자가 직접 전력 관리할 구간을 선정하고, 직접 프로그래밍 해주어야 하기 때문에, 전력 관리 구간 자체가 코스 그레인드(Coarse-grained)한 특성이 있고, 프로그래밍 오류로부터 안전하지 못하다.
그러나, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)를 이용하면, 전력 관리 구간 선정 및 관리를 프로그래머의 최소한의 노력을 가지고 자동화하여 실수를 방지하도록 하고, 그로 인해 좀 더 파인 그레인드(fine-grained)한 특성의 전력관리를 수행할 수 있다.
이를 위해서, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 코드 세그먼트 검색부(110), 블록 결정부(120), 및 전력 모드 제어부(130)를 포함할 수 있다.
일실시예에 따른 코드 세그먼트 검색부(110)는 전체 코드에서 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다.
도 2는 데이터에 사용 전력 타입을 설정하는 실시예를 설명하는 도면이다.
도 2에서 보는 바와 같이, 전체 코드 중에서 데이터에 해당하는 부분은 사전에 사용 전력 타입이 정의될 수 있다.
구체적으로, 도면부호 201과 같이 정수(integer)로 구분되는 변수 'a'에는 사용 전력 타입으로서 '_lp_'가 삽입되어 저전력(low power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 202와 같이 캐릭터로 구분되는 배열 변수 b[10]에는 사용 전력 타입으로서 '_mp_'가 삽입되어 중전력(middle power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 203에서는 함수 'ISR0'의 정의에 있어 사용 전력 타입으로서 '_hp_'가 삽입되어 함수 'ISR0'가 고전력(high power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 204에서 보는 바와 같이, 함수 'decode'의 인자 중에서 inputData에 사용 전력 타입으로서 '_gp_'를 삽입하여 함수 'decode'가 범용 전력(general power) 모드로 동작하는 것으로 전력 모드를 정의할 수 있다.
또한, 도면부호 205에서 보는 바와 같이, 영역에 대해서 사용 전력 타입으로서 '_lp_'를 삽입하여 저전력(lower power) 모드로 동작하는 것으로 특정 영역에 대한 전력 모드를 정의할 수 있다.
 종래에는 전력관리의 중심을 코드로 본다. 즉, 코드의 일부분을 저전력 구간으로 설정하고 관리를 한다.
그에 반해, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 전력 관리의 중심을 코드가 아닌 데이터로 본다. 즉, 사용 전력 타입을 삽입함으로써 데이터에 전력 모드를 설정하고, 연산 장치는 상기 데이터가 처리될 때 삽입된 사용 전력 타입에 해당하는 전력 모드로 동작시킬 수 있다.
그러므로 해당 데이터를 사용하는 부분을 찾아 전력 관리 구간으로 간주하고 관리를 할 수 있다.
데이터를 처리하는데 따른 전력 모드를 설정하는 방법으로는 새로운 데이터 타입을 도입하거나, 기존 데이터 타입에 사용 전력 타입을 삽입함으로써 구현할 수 있다.
도 2에서는 기존 데이터 타입에 사용 전력 타입을 삽입하는 것으로서, '_lp_', '_mp_', '_hp_', '_gp_' 는 각각 저전력(lower power), 중전력(middle power), 고전력(high power), 및 범용 전력(general power)을 의미할 수 있다.
전력 모드에 대한 기술은 메모리나 함수 코드, 코드 세그먼트, 영역, 하드웨어 가속기(HardWare Accelerator) 명령어, 인트린직스(Intrinsics), 및 인자(argument) 등이 될 수 있으며, 대상은 달라질 수 있다.
이하에서는, 상기 사용 전력 타입이 삽입된 데이터를 전력 데이터라고 정의한다.
상기 사용 전력 타입은 각각의 전력 모드의 한 종류를 의미하는 것으로 해석할 수 있다. 즉, 상기 사용 전력 타입과 전력 모드는 1:1로 대응되는 것으로 간주한다.
다시 도 1을 참고하면, 일실시예에 따른 코드 세그먼트 검색부(110)는 전체 코드에서 상기 '_lp_', '_mp_', '_hp_', 및 '_gp_' 등의 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다.
일실시예에 따른 블록 결정부(120)는 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정할 수 있다.
일실시예에 따른 블록 결정부(120)는 상기 검색된 적어도 하나 이상의 코드 세그먼트의 크기가 선정된 문턱값 이상인지 여부를 확인하고, 상기 선정된 문턱값 이상인 경우에 상기 검색된 적어도 하나 이상의 코드 세그먼트를 상기 적어도 하나 이상의 블록으로 결정할 수 있다.
즉, 일실시예에 따른 블록 결정부(120)는 블록의 크기가 너무 작은 경우에 전력 모드를 전환함으로써 저전력을 구현하여 얻는 이득이 크지 않다고 판단하여 해당 부분을 블록으로 결정하지 않는다.
상기 코드 세그먼트 및 상기 적어도 하나 이상의 블록은 도 3을 통해서 상세히 설명한다.
도 3은 사용 전력 타입에 기초하여 블록을 결정하는 실시예를 설명하는 도면이다.
도 3은 사용 전력 타입이 삽입된 데이터, 즉 전력 데이터를 기반으로 블록을 설정하는 도면이다.
전력 데이터를 사용하는 어떠한 인스트럭션(instruction) 하나도 블록으로 결정될 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 데이터를 사용하는 루프(loop), 컨트롤 블록(control block), 및 함수(function) 등에 대해서 적어도 하나 이상의 블록으로 결정할 수 있다.
도 3에서는 'SpinLock' 함수(function)내에서 저전력 정수(_lp_int)로 정의된 'i'가 선정된 조건('uipLock==LOCKED')을 만족하는 경우에 반복되는 'for' 루프 문을 코드 세그먼트로 해석할 수 있고, 'for' 루프 문을 구동하기 위한 'while' 반복 문을 블록으로 결정할 수 있다.
또한, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 하나의 'SpinLock' 함수를 블록으로 결정할 수도 있다.
뿐만 아니라, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 블록들의 집합을 또 하나의 블록으로 설정할 수가 있는데, 이렇게 상위 개념의 블록을 수퍼 블록으로 정의할 수 있다.
구체적으로, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)의 블록 결정부(120)는, 상기 결정된 적어도 하나 이상의 블록 중에서 선정된 거리 이내에 위치하고, 동일한 사용 전력 타입으로 식별되는 블록들을 수퍼 블록으로 결정할 수 있다.
만약, 서로 다른 블록들이 전체 코드에서 너무 멀리 위치해 있다면, 같은 수퍼 블록으로 결정될 경우에 저전력을 실현하는데 방해가 될 여지가 있다.
따라서, 일실시예에 따른 블록 결정부(120)는 결정된 블록들 중에서 전체 코드 내에서 선정된 거리 이내로 가까운 블록들만을 수퍼 블록으로 결정할 수 있다.
도 3에서 'SpinLock' 함수 자체가 사용 전력 타입으로써 전력 모드가 정의되는 함수인데, 이러한 'SpinLock' 함수들이 연속으로 이루어 진다면, 'SpinLock' 함수들을 수퍼 블록(302)으로 결정하여 전력 관리를 단일화 시킬 수 있다.
즉, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)의 전력 모드 제어부(130)는, 상기 수퍼 블록이 시작하는 위치 및 종료하는 위치 내의 코드 세그먼트들에 대해서 상기 동일한 전력 모드로 동작하도록 제어할 수 있다.
따라서, 수퍼 블록을 구성하는 블록들 사이에서 위치하고, 상기 수퍼 블록과는 다른 전력 모드로 동작하는 코드 세그먼트들에 대해서 빈번한 전력 모드의 전환을 예방하기 위해 상기 수퍼 블록과 동일한 전력 모드로 동작하도록 전력 모드를 통일시킬 수 있다.
이로써, 일실시예에 따른 데이터 기반의 전력 관리 장치(100)는 수퍼 블록(302)을 다양하게 구성함으로써 불필요한 전력 관리 비용을 줄이는 것이다.
다시 도 1을 참고하면, 일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어할 수 있다.
시스템에는 전력 소모가 다른 여러 개의 메모리가 존재할 수 있다.
예를 들어, 저전력을 사용하는 메모리로는 플립플롭 방식의 메모리 장치를 가지고 있는 RAM(Random access memory)으로서, 전원이 공급되는 동안만 저장된 내용을 기억하는 SRAM(static random access memory)이 존재할 수 있다.
또한, 고전력을 사용하는 메모리로는 구조가 간단해 집적이 용이하므로 대용량 임시기억장치로 사용되기도 하고, 저장된 정보가 시간에 따라 소멸되기 때문에 주기적으로 재생시켜야 하는 특징을 갖는 DRAM(dynamic random access memory)이 존재할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 따라서 상기 전력 소모가 다른 여러 개의 메모리 중에서 대응되는 메모리에 적재하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가할 수 있다.
예를 들어, 일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록의 시작 부분 이전에 프롤로그 코드를 삽입하고, 종료 부분 이후에 에필로그 코드를 삽입하여 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어할 수 있다.
전력 소모가 다른 여러 개의 메모리가 존재할 수 있으며, 이러한 메모리와 관련하여 중앙처리유닛(CPU, Central Processing Unit), 직접메모리 접근(DMA, Direct Memory Access) 장치, 하드웨어 가속기(HWA, HardWare Accelerator) 등의 장치들이 동작할 수 있다.
이러한 장치들은 시스템 클럭으로써 동작할 수 있는데, 일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 상기 시스템 클럭을 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 적어도 하나 이상의 블록의 처리가 종료되면, 상기 사용 전력 타입에 해당하는 전력 모드로 동작시키기 이전으로 전력 모드를 변경할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 블록을 선정된 전력 모드로 제어한 후, 상기 블록이 수행되기 이전의 전력 모드로 세팅할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 블록에서 상기 사용 전력 타입의 종류별 개수를 확인하고, 상기 결정된 블록이 상기 확인된 종류별 개수 중에서 가장 많은 개수의 종류에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
즉, 하나의 블록에 여러 개의 사용 전력 타입이 혼재해 있는 경우에 일실시예에 따른 전력 모드 제어부(130)는 빈번한 전력 모드의 전환으로 인해서 예상되는 전력 낭비를 예방하고자, 가장 많은 수의 사용 전력 타입에 해당하는 전력 모드로 상기 하나의 블록의 동작을 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(130)는 상기 결정된 블록에서 상기 사용 전력 타입 별로 데이터 각각의 크기를 확인하고, 상기 결정된 블록이 상기 확인된 크기 중에서 가장 큰 크기에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
즉, 하나의 블록에 여러 개의 사용 전력 타입이 혼재해 있는 경우에 일실시예에 따른 전력 모드 제어부(130)는 빈번한 전력 모드의 전환으로 인해서 예상되는 전력 낭비를 예방하고자, 가장 큰 크기로 정의되어 있는 데이터에 대응되는 전력 모드로 상기 하나의 블록의 동작을 제어할 수 있다.
만약, 정수 형태로 정의되어 있는 데이터 'i'가 저전력 모드이고, 배열 형태로 정의되어 있는 데이터 'a'가 고전력 모드인 경우, 일반적으로 정수 보다는 배열의 데이터 크기가 더 크다고 판단될 수 있다.
즉, 일실시예에 따른 전력 모드 제어부(130)는 해당 블록에 대해서 고전력 모드로 동작할 수 있도록 제어할 수 있다.
도 4는 다른 일실시예에 따른 데이터 기반의 전력 관리 장치(400)를 설명하는 블록도이다.
일실시예에 따른 데이터 기반의 전력 관리 장치(400)는 블록의 전력 모드를 결정하는데 있어 상기 블록의 워크로드를 더 고려할 수 있다. 이로써, 일실시예에 따른 데이터 기반의 전력 관리 장치(400)는 정밀한 전력 관리가 가능하다.
구체적으로, 일실시예에 따른 데이터 기반의 전력 관리 장치(400)는 코드 세그먼트 검색부(410), 블록 결정부(420), 전력 모드 제어부(430), 및 워크로드 분석부(440)를 포함할 수 있다.
일실시예에 따른 코드 세그먼트 검색부(410)는 전체 코드에서 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다.
일실시예에 따른 블록 결정부(420)는 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정할 수 있다.
일실시예에 따른 블록 결정부(420)는 상기 검색된 적어도 하나 이상의 코드 세그먼트의 크기가 선정된 문턱값 이상인지 여부를 확인하고, 상기 선정된 문턱값 이상인 경우에 상기 검색된 적어도 하나 이상의 코드 세그먼트를 상기 적어도 하나 이상의 블록으로 결정할 수 있다.
즉, 일실시예에 따른 블록 결정부(420)는 블록의 크기가 너무 작은 경우에 전력 모드를 전환함으로써 저전력을 구현하여 얻는 이득이 크지 않다고 판단하여 해당 부분을 블록으로 결정하지 않는다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 따라서 상기 전력 소모가 다른 여러 개의 메모리 중에서 대응되는 메모리에 적재하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가할 수 있다.
예를 들어, 일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록의 시작 부분 이전에 프롤로그 코드를 삽입하고, 종료 부분 이후에 에필로그 코드를 삽입하여 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어할 수 있다.
이러한 연산 장치들은 시스템 클럭으로써 동작할 수 있는데, 일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 상기 시스템 클럭을 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 적어도 하나 이상의 블록의 처리가 종료되면, 상기 사용 전력 타입에 해당하는 전력 모드로 동작시키기 이전으로 전력 모드를 변경할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 블록에서 상기 사용 전력 타입의 종류별 개수를 확인하고, 상기 결정된 블록이 상기 확인된 종류별 개수 중에서 가장 많은 개수의 종류에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
일실시예에 따른 전력 모드 제어부(430)는 상기 결정된 블록에서 상기 사용 전력 타입 별로 데이터 각각의 크기를 확인하고, 상기 결정된 블록이 상기 확인된 크기 중에서 가장 큰 크기에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어할 수 있다.
즉, 하나의 블록에 여러 개의 사용 전력 타입이 혼재해 있는 경우에 일실시예에 따른 전력 모드 제어부(430)는 빈번한 전력 모드의 전환으로 인해서 예상되는 전력 낭비를 예방하고자, 가장 큰 크기로 정의되어 있는 데이터에 대응되는 전력 모드로 상기 하나의 블록의 동작을 제어할 수 있다.
일실시예에 따른 워크로드 분석부(440)는 상기 결정된 적어도 하나 이상의 블록에 대한 워크로드(workload)를 분석할 수 있다.
예를 들어, 일실시예에 따른 워크로드 분석부(440)는 결정된 블록의 사용 전력 타입을 확인하고, 상기 결정된 블록에 대한 현재의 워크로드를 확인한다.
이후, 일실시예에 따른 전력 모드 제어부(430)는, 상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어할 수 있다.
구체적인 예로써, 일실시예에 따른 워크로드 분석부(440)는 상기 결정된 블록의 사용 전력 타입을 확인하여 전력 모드를 확인하고, 상기 결정된 블록에 대한 현재의 워크로드를 확인할 수 있다.
이후, 일실시예에 따른 워크로드 분석부(440)는 상기 확인한 워크로드를 통해 가중치를 산출하고, 상기 전력 모드에 상기 산출된 가중치를 반영하여 시스템 클럭의 변화값을 산출할 수 있다.
또한, 일실시예에 따른 워크로드 분석부(440)는 상기 산출된 시스템 클럭의 변화값을 기초로 클럭 제너레이터를 통해 시스템 클럭을 변화시킬 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 장치(400)는 단말 내 존재하는 중앙처리유닛 등의 구성 요소들에 대한 소비 전력을 제어함으로써, 저전력을 실행할 수 있다.
도 5는 일실시예에 따른 데이터 기반의 전력 관리 장치(510)가 적용된 시스템(500) 구성의 실시예를 설명하는 도면이다.
일실시예에 따른 시스템(500)은 전력 관리 장치(510), 클럭 제너레이터(520), 중앙처리유닛(530, CPU, Central Processing Unit), 직접메모리 접근(540, DMA, Direct Memory Access) 장치, 하드웨어 가속기(550, HWA, HardWare Accelerator), 저전력 메모리(560), 중전력 메모리(570), 및 고전력 메모리(580)를 포함할 수 있다.
일실시예에 따른 시스템(500)에는 저전력 메모리(560), 중전력 메모리(570), 및 고전력 메모리(580)와 같이 전력 소모가 다른 여러 개의 메모리가 존재할 수 있다.
중앙처리유닛(530, CPU, Central Processing Unit), 직접메모리 접근(540, DMA, Direct Memory Access) 장치, 및 하드웨어 가속기(550, HWA, HardWare Accelerator)의 연산 장치는 저전력 메모리(560), 중전력 메모리(570), 및 고전력 메모리(580) 중에서 어느 하나의 메모리에 접근하여 데이터의 로드, 적재 등의 동작을 수행할 수 있다.
이러한 동작을 수행하기 위해서, 중앙처리유닛(530, CPU, Central Processing Unit), 직접메모리 접근(540, DMA, Direct Memory Access) 장치, 및 하드웨어 가속기(550, HWA, HardWare Accelerator)의 연산 장치는 클럭 제너레이터(520)로부터 클럭을 입력 받을 수 있다.
이때, 클럭 제너레이터(520)는 일실시예에 따른 전력 관리 장치(510)을 통해 관리될 수 있다.
구체적으로, 일실시예에 따른 전력 관리 장치(510)는 데이터에 삽입되어 있는 사용 전력 타입에 따라서 해당 블록의 전력 모드를 확인할 수 있다.
이에, 일실시예에 따른 전력 관리 장치(510)는 확인한 전력 모드에 기초하여 클럭 제너레이터(520)를 조절하여 저전력 시스템을 구현할 수 있다.
저전력 메모리(560), 중전력 메모리(570), 및 고전력 메모리(580)은 각각 SRAM(static random access memory), NVRAM(Non-volatile memory), DRAM(dynamic random access memory)으로 해석될 수 있다.
같은 DRAM이더라도 리프레시 레이트(refresh rate)에 따라 전력 소모량이 다를 수 있다. 메모리와 및 연산장치는 전력 모드에 따라 다른 동작을 할 수 있는 조절부분이 전력 관리 장치(510)에 의해 관리될 수 있다.
도 6은 일실시예에 따른 데이터 기반의 전력 관리 방법을 설명하는 흐름도이다.
일실시예에 따른 데이터 기반의 전력 관리 방법을 이용하면, 전력 관리 구간 선정 및 관리를 프로그래머의 최소한의 노력을 가지고 자동화하여 실수를 방지하도록 하고, 그로 인해 좀 더 파인 그레인드(fine-grained)한 특성의 전력관리를 수행할 수 있다.
이를 위해, 일실시예에 따른 데이터 기반의 전력 관리 방법은 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다(단계 601).
일례로, 상기 적어도 하나 이상의 코드 세그먼트는 변수(variable), 배열(array), 함수(function), 인수(argument), 및 영역(region) 중에서 적어도 하나의 데이터로 해석할 수 있다.
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정할 수 있다(단계 602).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어할 수 있다(단계 603).
도 7은 블록을 결정하는 방법을 보완하여 일실시예에 따른 데이터 기반의 전력 관리 방법을 보다 구체적으로 설명하는 도면이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 전체 코드 중에서 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다(단계 701).
예를 들어, 정수(integer)로 구분되는 변수 a의 데이터에 사용 전력 타입으로서 '_lp_'가 삽입되어 저전력(low power) 모드로 동작하는 것으로 변수 a의 데이터에 대한 전력 모드가 정의될 수 있다.
이에, 일실시예에 따른 데이터 기반의 전력 관리 방법은 전체 코드 중에서 변수 a의 데이터에 삽입된 사용 전력 타입를 확인함으로써, 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색할 수 있다
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정할 수 있다(단계 702).
예를 들어, 일실시예에 따른 데이터 기반의 전력 관리 방법은 데이터를 사용하는 루프(loop), 컨트롤 블록(control block), 및 함수(function) 등에 대해서 적어도 하나 이상의 블록으로 결정할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 블록들로부터 수퍼 블록을 결정할 수 있다(단계 703).
일실시예에 따른 데이터 기반의 전력 관리 방법은 검색된 블록들 중에서 인접한 블록들을 그룹핑하여 수퍼 블록으로 결정할 수 있다.
상기 수퍼 블록들은 또 다른 블록으로 해석될 수 있다.
예를 들어, 최초에 검색된 10개의 블록들 중에서 5개의 블록들이 그룹핑되어 수퍼 블록으로 결정되는 경우, 일실시예에 따른 데이터 기반의 전력 관리 방법은 남은 5개의 블록들과 함께, 상기 결정된 수퍼 블록을 새로운 1개의 블록으로 인식하여 처리할 수 있다. 즉, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 수퍼 블록을 결정함으로써, 최초 검색된 10개의 블록들을 6개의 블록으로 인식하여 처리할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 수퍼 블록을 포함하는 블록들 중에서 선정된 크기 이하인 블록들을 제외시킬 수 있다(단계 704).
상기 블록은 전체 코드의 컴파일 시에 결정될 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 전체 코드에서 사용 전력 타입이 사용된 전력 데이터이 사용된 부분을 검색하고, 그 중에서 블록을 결정할 수 있다.
그리고 결정된 블록들 중에서 수퍼 블록을 결정할 수 있는데, 이때 일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 블록들이 중 특정 조건에 만족하는지 점검할 수 있다.
도 7의 실시예에서는 작은 크기를 갖는 블록들은 전력관리 대상에서 제거한다.
따라서, 도 7의 실시예에서는 남겨진 블록들에 대해서만 전력 모드를 설정할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 블록들의 전력 모드를 결정할 수 있다(단계 705).
일실시예에 따른 데이터 기반의 전력 관리 방법은 블록들을 구성하는 블록들에 대한 전력 모드의 종류를 확인하고, 상기 확인된 종류별로 개수를 확인할 수 있다.
이에, 가장 많이 확인되는 개수를 갖는 종류의 전력 모드의 형태로 상기 블록들의 전력 모드를 결정할 수 있다.
예를 들어, 블록들 중에서 저전력 모드로 동작하는 블록들의 개수가 가장 많은 경우에, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 블록들의 전력 모드를 저전력 모드로 결정할 수 있다.
다른 예로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 블록들의 크기를 확인하고, 가장 큰 크기에 해당하는 블록의 전력 모드를 상기 블록들의 전력 모드로 결정할 수 있다.
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 블록들이 상기 결정된 전력 모드로 동작할 수 있도록 새로운 적어도 하나 이상의 코드 세그먼트를 추가할 수 있다(단계 706).
일실시예에 따른 데이터 기반의 전력 관리 방법은 블록들 각각에 대해 전력 모드를 설정하는 코드를 해당 블록의 앞/뒤에 삽입할 수 있다.
다시 말해, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가할 수 있다.
이때, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 수퍼 블록이 시작 부분 이전에 프롤로그 코드를 삽입하고, 종료 부분 이후에 에필로그 코드를 삽입하여 상기 결정된 전력 모드로 동작하도록 제어할 수 있다.
도 8은 결정된 블록을 관련된 전력 모드로 동작하도록 제어하는 방법을 설명하는 도면이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 블록에 대해 사용 전력 타입 별로 데이터 각각의 크기를 확인할 수 있다(단계 801).
하나의 블록에서는 여러 개의 사용 전력 타입이 삽입될 수 있다.
예를 들어, 'SpinLock' 함수(function) 내에는 '_lp_int', '_hp_char a[10]' 등의 데이터가 정의될 수 있고, 각각의 데이터는 독립된 사용 전력 타입들이 삽입될 수 있다. 따라서, 'SpinLock' 함수(function)의 내부에는 복수개의 사용 전력 타입들이 포함될 수 있다.
이에, 일실시예에 따른 데이터 기반의 전력 관리 방법은 'SpinLock' 함수(function) 내에서 사용 전력 타입들이 삽입되어 있는 데이터들에 대해서 크기를 확인할 수 있다.
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 확인된 크기들 중에서 가장 큰 크기에 해당하는 데이터에 삽입되어 있는 사용 전력 타입을 결정할 수 있다(단계 802).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 사용 전력 타입에 대응하는 전력 모드로 동작하도록 상기 결정된 블록을 제어할 수 있다(단계 803).
도 9는 워크로드를 반영하여 전력 모드를 제어하는 방법을 설명하는 도면이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 적어도 하나 이상의 블록에 대한 워크로드를 분석하고, 상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어할 수 있다.
이를 위해, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 블록의 전력 모드를 확인할 수 있다(단계 901).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 블록에서 상기 사용 전력 타입의 종류별 개수를 확인하고, 상기 결정된 블록이 상기 확인된 종류별 개수 중에서 가장 많은 개수의 종류에 해당하는 사용 전력 타입에 대응하는 전력 모드를 확인할 수 있다.
즉, 하나의 블록에 여러 개의 사용 전력 타입이 혼재해 있는 경우에 일실시예에 따른 데이터 기반의 전력 관리 방법은 빈번한 전력 모드의 전환으로 인해서 예상되는 전력 낭비를 예방하고자, 가장 많은 수의 사용 전력 타입에 해당하는 전력 모드로 상기 하나의 블록의 동작을 제어할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 빈번한 전력 모드의 전환으로 인해서 예상되는 전력 낭비를 예방하고자, 가장 큰 크기로 정의되어 있는 데이터에 대응되는 전력 모드로 상기 하나의 블록의 동작을 제어할 수 있다.
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 결정된 블록의 워크로드를 획득할 수 있다(단계 902).
상기 워크로드는 상기 결정된 블록에 할당된 작업량에 해당한다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 획득한 워크로드에 대응하는 가중치(weight)를 생성할 수 있다(단계 903).
예를 들어, 워크로드가 높은 블록에 대해서는 처리 효율을 높이기 위해서 워크로드가 낮은 블록에 대해서 높은 가중치가 생성될 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 전력 모드와 상기 생성한 가중치를 고려하여 상기 결정된 블록을 제어하기 위한 시스템 클럭을 제어할 수 있다(단계 904).
결국, 일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 블록에 대해서 워크로드(workload)를 확인하고, 상기 확인된 워크로드를 기초로 가중치(weight)를 산출하며, 상기 산출된 가중치를 클럭의 변화에 반영하여 클럭을 변화시킴으로써, 시스템의 전력을 효율적으로 제어할 수 있다.
도 10은 전력 모드를 전환하는 방법을 설명하는 도면이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 현재 전력 모드에 대한 정보를 스택에 저장할 수 있다(단계 1001).
전력 모드는 스택 형태의 자료구조로 유지될 수 있다.
전력 모드가 계속 변화될 수 있기 때문에, 현재 전력 모드에 대해서는 LIFO(Last-In First-Out) 형태로 스택에 적재되거나, 스택으로부터 로드될 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 현재 전력 모드의 전환시에는 현재 전력 모드를 전력 모드 스택에 저장하고, 블록의 전력 모드를 현재 전력 모드로 설정할 수 있다.
다음으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 결정된 블록의 전력 모드를 제어하며, 블록을 실행할 수 있다(단계 1002).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 블록의 실행이 종료되면, 상기 스택에 저장된 상기 현재 전력 모드에 대한 정보를 독출할 수 있다(단계 1003).
일실시예에 따른 데이터 기반의 전력 관리 방법은 현재 전력 모드의 전환시에는 현재 전력 모드를 전력 모드 스택에 저장하고, 블록의 전력 모드를 현재 전력 모드로 설정할 수 있다.
또한, 일실시예에 따른 데이터 기반의 전력 관리 방법은 해당 블록을 수행하고, 수행이 끝나면 상기 스택으로부터 이전에 기록된 전력 모드를 로드하여 현재 전력 모드로 설정할 수 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 전력 모드를 적재 및 로드하기 위한 스택에 대해서, 태스크(task)를 관리할 수 있고, 문맥 교환(context switch) 시에도 관리할 수도 있다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 독출한 상기 현재 전력 모드에 대한 정보에 기초하여 현재 전력 모드 변경을 수행할 수 있다(단계 1004).
도 11은 전력 모드에 따른 메모리 레이아웃을 설명하는 도면이다.
도 11은 사용 전력 타입이 삽입되어 있는 전력 데이터를 메모리에 위치시키는 방법에 대한 순서도이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 코드 세그먼트에 삽입되어 있는 사용 전력 타입을 확인할 수 있다(단계 1101).
확인 결과, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 확인된 사용 전력 타입에 따라, 데이터를 해당하는 메모리에 저장할 수 있다.
구체적으로, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 확인된 사용 전력 타입에 따라 상기 데이터가 저전력 데이터인지 여부를 확인하고(단계 1102), 저전력 데이터인 경우에 상기 데이터를 저전력 메모리에 저장할 수 있다(단계 1103).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 데이터가 저전력 데이터가 아닌 경우, 고전력 데이터인지 여부를 확인하고(단계 1104), 고전력 데이터인 경우에 상기 데이터를 고전력 메모리에 저장할 수 있다(단계 1105).
상기 데이터가 저전력 데이터도 아니고 고전력 데이터도 아닌 경우에 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 데이터를 중전력 메모리에 저장할 수 있다(단계 1106).
다시 말해, 사용 전력 타입에 따라서 결정되는 전력 모드에 의해서 데이터가 저장되는 메모리의 위치는 달라질 수 있다.
도 12는 입력의 전력 모드에 따른 전력 관리 방법을 설명하는 도면이다.
일실시예에 따른 데이터 기반의 전력 관리 방법은 코드 세그먼트에 삽입되어 있는 데이터에 대해서 인자의 사용 전력 타입을 확인할 수 있다(단계 1201).
확인 결과, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 확인된 인자의 사용 전력 타입에 따라, 데이터의 처리 모드를 세팅할 수 있다.
상기 확인된 인자에 따라서 전력 모드는 컴파일시에 세팅되는 것이 아니고, 런타임 시에 정해질 수 있다. 즉, 사용 전력 타입이 함수의 인자로 사용하게 된다면 동일한 코드를 입력값에 따라 전력관리를 다르게 할 수 있다.
이를 위해, 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 확인된 사용 전력 타입에 따라 상기 데이터의 인자가 저전력 데이터인지 여부를 확인하고(단계 1202), 저전력 데이터인 경우에 상기 데이터를 저전력 모드로 처리하도록 시스템을 세팅할 수 있다(단계 1203).
일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 데이터의 인자가 저전력 데이터가 아닌 경우, 고전력 데이터인지 여부를 확인하고(단계 1204), 고전력 데이터인 경우에 상기 데이터를 고전력 모드로 처리하도록 시스템을 세팅할 수 있다(단계 1205).
상기 데이터의 인자가 저전력 데이터도 아니고 고전력 데이터도 아닌 경우에 일실시예에 따른 데이터 기반의 전력 관리 방법은 상기 데이터를 중전력 모드로 처리하도록 시스템을 세팅할 수 있다(단계 1206).
결국, 일실시예에 따른 데이터 기반의 전력 관리 방법을 이용하면, 쉬운 저전력 프로그래밍 및 동적 전력 관리 가능하고, 저전력으로 인한 배터리 시간 증가로 모바일 장치 등 활용성 증대를 기대할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
100: 전력 관리 장치
110: 코드 세그먼트 검색부
120: 블록 결정부
130: 전력 모드 제어부

Claims (19)

  1. 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색하는 코드 세그먼트 검색부;
    상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정하는 블록 결정부; 및
    상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 전력 모드 제어부
    를 포함하는 데이터 기반의 전력 관리 장치.
  2. 제1항에 있어서,
    상기 전력 모드 제어부는,
    상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어하는 데이터 기반의 전력 관리 장치.
  3. 제1항에 있어서,
    상기 전력 모드 제어부
    상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가하는 데이터 기반의 전력 관리 장치.
  4. 제1항에 있어서,
    상기 전력 모드 제어부
    상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어하는 데이터 기반의 전력 관리 장치.
  5. 제1항에 있어서,
    상기 적어도 하나 이상의 코드 세그먼트는,
    사용자로부터 전력 타입으로 기술된 데이터인 데이터 기반의 전력 관리 장치.
  6. 제1항에 있어서,
    상기 블록 결정부는,
    상기 결정된 적어도 하나 이상의 블록 중에서 선정된 거리 이내에 위치하고, 동일한 사용 전력 타입으로 식별되는 블록들을 수퍼 블록으로 결정하는 데이터 기반의 전력 관리 장치.
  7. 제6항에 있어서,
    상기 전력 모드 제어부는,
    상기 수퍼 블록이 시작하는 위치 및 종료하는 위치 내의 코드 세그먼트들에 대해서 상기 동일한 전력 모드로 동작하도록 제어하는 데이터 기반의 전력 관리 장치.
  8. 제1항에 있어서,
    상기 블록 결정부는,
    상기 검색된 적어도 하나 이상의 코드 세그먼트의 크기가 선정된 문턱값 이상인지 여부를 확인하고, 상기 선정된 문턱값 이상인 경우에 상기 검색된 적어도 하나 이상의 코드 세그먼트를 상기 적어도 하나 이상의 블록으로 결정하는 데이터 기반의 전력 관리 장치.
  9. 제1항에 있어서,
    상기 전력 모드 제어부는,
    상기 결정된 적어도 하나 이상의 블록의 처리가 종료되면, 상기 사용 전력 타입에 해당하는 전력 모드로 동작시키기 이전으로 전력 모드를 변경하는 데이터 기반의 전력 관리 장치.
  10. 제1항에 있어서,
    상기 전력 모드 제어부는,
    상기 결정된 블록에서 상기 사용 전력 타입의 종류별 개수를 확인하고, 상기 결정된 블록이 상기 확인된 종류별 개수 중에서 가장 많은 개수의 종류에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어하는 데이터 기반의 전력 관리 장치.
  11. 제1항에 있어서,
    상기 전력 모드 제어부는,
    상기 결정된 블록에서 상기 사용 전력 타입 별로 데이터 각각의 크기를 확인하고, 상기 결정된 블록이 상기 확인된 크기 중에서 가장 큰 크기에 해당하는 사용 전력 타입에 대응하는 전력 모드로 동작하도록 제어하는 데이터 기반의 전력 관리 장치.
  12. 제1항에 있어서,
    상기 결정된 적어도 하나 이상의 블록에 대한 워크로드를 분석하는 워크로드 분석부;
    를 더 포함하는 데이터 기반의 전력 관리 장치.
  13. 제12항에 있어서,
    상기 전력 모드 제어부는,
    상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어하는 데이터 기반의 전력 관리 장치.
  14. 코드 세그먼트 검색부에서, 사용 전력 타입이 삽입되어 있는 적어도 하나 이상의 코드 세그먼트를 검색하는 단계;
    블록 결정부에서, 상기 검색된 적어도 하나 이상의 코드 세그먼트에 기초하여 적어도 하나 이상의 블록을 결정하는 단계; 및
    전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 단계
    를 포함하고,
    상기 적어도 하나 이상의 코드 세그먼트는 변수(variable), 배열(array), 함수(function), 인수(argument), 및 영역(region) 중에서 적어도 하나의 데이터인 데이터 기반의 전력 관리 방법.
  15. 제14항에 있어서,
    상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는,
    상기 결정된 적어도 하나 이상의 블록에 의해 처리되는 적어도 하나 이상의 데이터를 상기 사용 전력 타입에 대응되는 메모리로 적재하도록 제어하는 단계
    를 포함하는 데이터 기반의 전력 관리 방법.
  16. 제14항에 있어서,
    상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는,
    상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록과 연관된 위치에 새로운 적어도 하나 이상의 코드 세그먼트를 추가하는 단계
    를 포함하는 데이터 기반의 전력 관리 방법.
  17. 제14항에 있어서,
    상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는,
    상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 상기 결정된 적어도 하나 이상의 블록을 이용하여 시스템 클럭을 제어하는 단계
    를 포함하는 데이터 기반의 전력 관리 방법.
  18. 제14항에 있어서,
    워크로드 분석부에서, 상기 결정된 적어도 하나 이상의 블록에 대한 워크로드를 분석하는 단계
    를 더 포함하고,
    상기 전력 모드 제어부에서, 상기 결정된 적어도 하나 이상의 블록이 상기 사용 전력 타입에 해당하는 전력 모드로 동작하도록 제어하는 상기 단계는,
    상기 분석된 워크로드를 고려하여 상기 전력 모드를 변경해서 상기 결정된 적어도 하나 이상의 블록을 제어하는 단계
    를 포함하는 데이터 기반의 전력 관리 방법.
  19. 제14항 내지 제18항 중에서 어느 한 항의 방법을 수행하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020120077221A 2012-07-16 2012-07-16 데이터를 기반으로 전력을 관리하는 장치 및 방법 KR101959252B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020120077221A KR101959252B1 (ko) 2012-07-16 2012-07-16 데이터를 기반으로 전력을 관리하는 장치 및 방법
US13/903,256 US9501114B2 (en) 2012-07-16 2013-05-28 Apparatus and method for managing power based on data
CN201310298097.4A CN103544003B (zh) 2012-07-16 2013-07-16 基于数据管理功率的设备和方法
JP2013147936A JP6186196B2 (ja) 2012-07-16 2013-07-16 データに基づいて電力を管理する装置及び方法
EP13176648.7A EP2687944B1 (en) 2012-07-16 2013-07-16 Apparatus and method for managing power based on data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120077221A KR101959252B1 (ko) 2012-07-16 2012-07-16 데이터를 기반으로 전력을 관리하는 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140010671A true KR20140010671A (ko) 2014-01-27
KR101959252B1 KR101959252B1 (ko) 2019-07-04

Family

ID=48874781

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120077221A KR101959252B1 (ko) 2012-07-16 2012-07-16 데이터를 기반으로 전력을 관리하는 장치 및 방법

Country Status (5)

Country Link
US (1) US9501114B2 (ko)
EP (1) EP2687944B1 (ko)
JP (1) JP6186196B2 (ko)
KR (1) KR101959252B1 (ko)
CN (1) CN103544003B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891692B2 (en) 2014-08-28 2018-02-13 Samsung Electronics Co., Ltd. Apparatus and method of controlling power consumption of graphic processing unit (GPU) resources

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102063716B1 (ko) * 2013-05-14 2020-02-11 삼성전자주식회사 데이터를 기반으로 전력을 관리하는 프로세싱 장치 및 그 장치를 이용한 방법
EP3121714B1 (en) * 2015-07-23 2018-02-21 Karlsruher Institut für Technologie Computer system and method for multi-processor communication

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014742A1 (en) * 2001-07-09 2003-01-16 Sasken Communication Technologies Limited Technique for compiling computer code to reduce energy consumption while executing the code
JP2003296123A (ja) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2004318502A (ja) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
US20070300214A1 (en) * 2006-06-23 2007-12-27 Rong-Guey Chang Power-aware compiling method
US20110093726A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Memory Object Relocation for Power Savings

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0616304B2 (ja) 1984-12-28 1994-03-02 株式会社東芝 低消費電力時におけるcpuの機能代替方法
US6967728B1 (en) * 1999-07-23 2005-11-22 Electronics For Imaging, Inc. Reusable and transferable printer driver preference system
US6990594B2 (en) 2001-05-02 2006-01-24 Portalplayer, Inc. Dynamic power management of devices in computer system by selecting clock generator output based on a current state and programmable policies
US7224756B2 (en) 2001-08-01 2007-05-29 Cirrus Logic, Inc. Method and system for providing a codec clock signal at a desired operational rate
US6775787B2 (en) * 2002-01-02 2004-08-10 Intel Corporation Instruction scheduling based on power estimation
US7191350B2 (en) 2002-01-30 2007-03-13 Matsushita Electric Industrial Co., Ltd. Instruction conversion apparatus and instruction conversion method providing power control information, program and circuit for implementing the instruction conversion, and microprocessor for executing the converted instruction
JP2004199139A (ja) 2002-12-16 2004-07-15 Matsushita Electric Ind Co Ltd プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
JP2004326153A (ja) 2003-04-21 2004-11-18 Canon Inc 消費電力低減装置
JP2005038186A (ja) * 2003-07-15 2005-02-10 Matsushita Electric Ind Co Ltd 情報処理装置
EP1652056A1 (en) 2003-07-30 2006-05-03 Koninklijke Philips Electronics N.V. Flexible power reduction for embedded components
US7392099B2 (en) 2003-12-12 2008-06-24 Hewlett-Packard Development Company, L.P. System and method for power management when an operating voltage is between two thresholds
KR20050100441A (ko) 2004-04-14 2005-10-19 엠큐브웍스(주) 무선 단말기의 전력 관리를 위한 아이들 제어 방법
KR101016579B1 (ko) 2006-09-30 2011-02-22 삼성전자주식회사 통신 시스템에서 전력 제어 방법 및 시스템
JP2008234270A (ja) * 2007-03-20 2008-10-02 Fujitsu Ltd 情報処理装置および情報処理装置の制御方法
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US8948270B2 (en) 2008-08-19 2015-02-03 Qualcomm Incorporated Power and computational load management techniques in video processing
JP2011134288A (ja) * 2009-01-19 2011-07-07 Fujitsu Ltd コード生成装置及びコード生成方法
JP2011170709A (ja) 2010-02-19 2011-09-01 Ricoh Co Ltd ネットワーク制御装置、画像形成装置、画像形成システム、省エネ制御方法、及び省エネ制御プログラム
JP2011129147A (ja) 2011-01-31 2011-06-30 Panasonic Corp プロセッサシステム、命令列最適化装置、および命令列最適化プログラム
US8185758B2 (en) 2011-06-30 2012-05-22 Intel Corporation Method and system for determining an energy-efficient operating point of a platform

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030014742A1 (en) * 2001-07-09 2003-01-16 Sasken Communication Technologies Limited Technique for compiling computer code to reduce energy consumption while executing the code
JP2003296123A (ja) * 2002-01-30 2003-10-17 Matsushita Electric Ind Co Ltd 電力制御情報を付与する命令変換装置及び命令変換方法、命令変換を実現するプログラム及び回路、変換された命令を実行するマイクロプロセッサ
JP2004318502A (ja) * 2003-04-16 2004-11-11 Matsushita Electric Ind Co Ltd 電力制御機能を備えたマイクロプロセッサ及び命令変換装置
US20070300214A1 (en) * 2006-06-23 2007-12-27 Rong-Guey Chang Power-aware compiling method
US20110093726A1 (en) * 2009-10-15 2011-04-21 Microsoft Corporation Memory Object Relocation for Power Savings

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9891692B2 (en) 2014-08-28 2018-02-13 Samsung Electronics Co., Ltd. Apparatus and method of controlling power consumption of graphic processing unit (GPU) resources

Also Published As

Publication number Publication date
CN103544003A (zh) 2014-01-29
US9501114B2 (en) 2016-11-22
KR101959252B1 (ko) 2019-07-04
EP2687944A3 (en) 2014-12-03
EP2687944B1 (en) 2017-11-22
EP2687944A2 (en) 2014-01-22
US20140019782A1 (en) 2014-01-16
JP2014021984A (ja) 2014-02-03
JP6186196B2 (ja) 2017-08-23
CN103544003B (zh) 2018-09-21

Similar Documents

Publication Publication Date Title
CN100407102C (zh) 基于软件的微处理器功率损耗控制
CN1322397C (zh) 处理器系统、指令序列优化装置和指令序列优化程序
US10078357B2 (en) Power gating functional units of a processor
CN100561461C (zh) 用于经由资源分配和限制的异构芯片多处理器的装置和方法
US6308323B1 (en) Apparatus and method for compiling a plurality of instruction sets for a processor and a media for recording the compiling method
US9182810B2 (en) Domain specific language, compiler and JIT for dynamic power management
US8595527B2 (en) Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system
JP2004259274A (ja) マシン・コード・ビルダによって得られる電力消費低減
KR20140010671A (ko) 데이터를 기반으로 전력을 관리하는 장치 및 방법
KR102205899B1 (ko) 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치
Vander An et al. Instruction buffering exploration for low energy vliws with instruction clusters
CN111819629A (zh) 管理存储器供电状态的方法及芯片
US9395962B2 (en) Apparatus and method for executing external operations in prologue or epilogue of a software-pipelined loop
US9304967B2 (en) Reconfigurable processor using power gating, compiler and compiling method thereof
US20180260014A1 (en) Systems and methods for controlling memory array power consumption
CN103106042B (zh) 数据存取方法和电子设备
Guzma et al. Effects of loop unrolling and use of instruction buffer on processor energy consumption
CN115809121A (zh) 用于上下文切换的方法和装置
Chu POERS: a performance-oriented energy reduction scheduling technique for a high-performance MPSoC architecture
Chanda et al. Scope and issues in green compiler
US20130067444A1 (en) Reconfigurable processor, and apparatus and method for converting code thereof
US20120151456A1 (en) Low power program compiling device, method and computer readable storage medium for storing thereof

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