KR20100081280A - 이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘 - Google Patents
이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘 Download PDFInfo
- Publication number
- KR20100081280A KR20100081280A KR1020100000262A KR20100000262A KR20100081280A KR 20100081280 A KR20100081280 A KR 20100081280A KR 1020100000262 A KR1020100000262 A KR 1020100000262A KR 20100000262 A KR20100000262 A KR 20100000262A KR 20100081280 A KR20100081280 A KR 20100081280A
- Authority
- KR
- South Korea
- Prior art keywords
- processes
- data processing
- processing system
- time period
- power
- Prior art date
Links
- 230000007246 mechanism Effects 0.000 title abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 201
- 230000008569 process Effects 0.000 claims abstract description 182
- 238000012545 processing Methods 0.000 claims abstract description 109
- 238000004590 computer program Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 4
- 230000000779 depleting effect Effects 0.000 claims 1
- 238000012544 monitoring process Methods 0.000 description 28
- 238000010586 diagram Methods 0.000 description 21
- 239000003795 chemical substances by application Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 230000008014 freezing Effects 0.000 description 7
- 238000007710 freezing Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 238000005259 measurement Methods 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008278 dynamic mechanism Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- QWXYZCJEXYQNEI-OSZHWHEXSA-N intermediate I Chemical compound COC(=O)[C@@]1(C=O)[C@H]2CC=[N+](C\C2=C\C)CCc2c1[nH]c1ccccc21 QWXYZCJEXYQNEI-OSZHWHEXSA-N 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/329—Power saving characterised by the action undertaken by task scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4893—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘이 제공된다. 데이터 프로세싱 시스템(예를 들어, 이동식 장치)의 동작 상태는 데이터 프로세싱 시스템이 고갈되는 전원을 사용할 때 동작의 목표 시간 기간을 얻기 위해 조정된다. 데이터 프로세싱 시스템상에서 실행되는 개별 프로세스들의 예측 전력 소비가 결정되고 고갈되는 전원이 제공할 수 있는 잔여 전력량 또한 결정된다. 개별 프로세스들의 예측 전력 소비 및 고갈되는 전원이 제공할 수 있는 전력량에 기초하여, 데이터 프로세싱 시스템이 목표 시간 기간 동안 동작할 수 있도록 그 실행이 중단될 수 있는 프로세스들의 서브셋이 결정된다. 식별된 프로세스들의 서브셋은 중단된 실행 상태로 된다.
Description
본 출원은 일반적으로 개선된 데이터 프로세싱 기구 및 방법에 관한 것이고, 보다 구체적으로는 이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘에 관한 것이다.
데이터 프로세싱 시스템 동작에서 에너지 소비를 줄이는 것은 점점 더 중요한 요구사항이 되어가고 있다. 에너지 절약은 환경의 영향 및 비용 증가 때문에 매우 중요한 이슈이다. 더 나아가, 사용자들에 의한 과도한 요청 및 높은 소비에 의해 야기되는 에너지 공급 방해(블랙아웃)와 관련된 위험 및 비용이 고려되어야만 한다.
에너지 소비가 매우 중요한 하나의 영역은 휴대용 장치(이동 전화, 랩톱 컴퓨터 등)의 배터리 전력에 관한 것이다. 종종 사용자는 자신의 휴대용 장치(예를 들어, 랩톱)를 작동시킬 수 있고, 어떤 동작을 수행하고자 하지만 이러한 동작을 완료하기에 보유 배터리 전력이 부족할 수 있다. 예를 들어, 사용자는 다른 사람들에게 프레젠테이션의 일부로서 복수의 슬라이드를 제시하기 위해 사용하고자 하지만, 프레젠테이션의 전체 시간 동안 랩톱 컴퓨터를 동작시키기에 충분한 배터리 전력이 없을 수 있다. 일정한 전력 공급을 갖기 위해 랩톱 컴퓨터의 플러그를 벽 소켓에 꽂을 수 있지만, 그러한 전력원이 이용가능하지 않은 경우도 종종 있다. 따라서, 프레젠테이션을 완료하기 위한 전체 시간 동안 랩톱 컴퓨터를 실행하기에 충분한 배터리 전력을 갖지 못하고, 벽 소켓이나 기타 일정한 전력원에 액세스할 수 없는 사용자는 프레젠테이션 또는 기타 휴대용 장치(예를 들어, 랩톱 컴퓨터)가 요구되는 동작을 완료할 수 없을 것이다.
데이터 프로세싱 시스템에서, 개별 하드웨어 장치의 소비를 모니터링하고, 데이터 프로세싱 시스템의 총 전력 소비를 최적화하기 위해 일부 교정 동작을 가하는 것이 알려져 있다. 예를 들어, 미국 특허 제7,197,652호는 멀티스레드 데이터 프로세싱 시스템에서 에너지 관리를 위한 메커니즘을 개시한다. 이 방법은 연결된 하드웨어 장치들의 사용을 모니터링하는 성능 모니터 유닛 내에 장치당 사용 평가기를 제공한다. 그러나 전력 소비는 하드웨어 장치가 사용되는 방식에도 달려있을 수 있다. 예를 들어, 전력 소비는 시스템상에서 실행되는 소프트웨어 애플리케이션 및 그 애플리케이션에 의해 사용되는 소프트웨어와 하드웨어 리소스에 달려있을 수 있다.
본 발명의 목적은 이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘을 제공하는 것이다.
예시적인 일 실시예에서, 데이터 프로세싱 시스템 내에서, 상기 데이터 프로세싱 시스템이 고갈되는 전원을 사용할 때 동작의 목표 시간 기간(a target time period of operation)을 얻기 위해 상기 데이터 프로세싱 시스템의 동작 상태를 조정하기 위한 방법이 제공된다. 상기 방법은 상기 데이터 프로세싱 시스템상에서 실행되는 개별 프로세스들의 예측 전력 소비를 결정하는 단계 및 상기 고갈되는 전원이 제공할 수 있는 잔여 전력량을 결정하는 단계를 포함한다. 상기 방법은 추가로 상기 개별 프로세스들의 상기 예측 전력 소비 및 상기 고갈되는 전원이 제공할 수 있는 상기 전력량에 기초하여, 상기 데이터 프로세싱 시스템이 상기 목표 시간 기간 동안 동작할 수 있도록 그 실행이 중단될 수 있는 프로세스들의 서브셋을 식별하는 단계를 포함한다. 또한, 상기 방법은 상기 식별된 프로세스들의 서브셋을 중단된 실행 상태로 하는 단계를 포함한다.
예시적인 다른 실시예에서, 컴퓨터 판독가능 프로그램이 기록된 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 판독가능 프로그램은 컴퓨팅 장치상에서 실행되는 경우 상기 컴퓨팅 장치로 하여금, 상기 예시적인 방법 실시예에 관하여 개요가 설명된 동작들 중 하나 및 이들의 조합을 수행하도록 한다.
본 발명의 다른 예시적인 일 실시예에서, 시스템/장치가 제공된다. 상기 시스템/장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 결합되는 메모리를 포함할 수 있다. 상기 메모리는 상기 하나 이상의 프로세서에 의해 실행되는 경우 상기 하나 이상의 프로세서로 하여금 상기 예시적인 방법 실시예에 관하여 개요가 설명된 동작들 중 하나 및 이들의 조합을 수행하도록 하는 명령어들을 포함할 수 있다.
본 발명의 이들 및 다른 특징과 장점은 아래의 본 발명의 예시적인 실시예들의 상세한 설명에 설명될 것이고, 또는 당업자가 이를 볼 때 자명할 것이다.
예시적인 실시예들에 따라 데이터 프로세싱 시스템을 위한 배터리의 수명을 증가시키기 위해 데이터 프로세싱 시스템상에서 실행되는 프로세스를 최적화하기 위한 메커니즘이 제공된다.
본 발명과 그 바람직한 사용 모드 및 그 추가적인 목적과 장점은 첨부된 도면과 함께 이하의 예시적인 실시예들의 상세한 설명을 참조하여 가장 잘 이해될 것이다.
도 1은 예시적인 실시예의 메커니즘이 구현될 수 있는 데이터 프로세싱 시스템의 예시적인 블록도.
도 2는 예시적인 일 실시예에 따른 최적화기 메커니즘의 주 동작 요소들의 블록도.
도 3은 예시적인 일 실시예에 따른 예측 전력 소비 엔진의 주 동작 요소들의 블록도.
도 4는 예시적인 일 실시예에 따른 예측 전력 소비 엔진의 동작의 개요를 나타내는 예시적인 흐름도.
도 5는 예시적인 일 실시예에 따른 최적화기 메커니즘의 동작의 개요를 나타내는 예시적인 흐름도.
도 1은 예시적인 실시예의 메커니즘이 구현될 수 있는 데이터 프로세싱 시스템의 예시적인 블록도.
도 2는 예시적인 일 실시예에 따른 최적화기 메커니즘의 주 동작 요소들의 블록도.
도 3은 예시적인 일 실시예에 따른 예측 전력 소비 엔진의 주 동작 요소들의 블록도.
도 4는 예시적인 일 실시예에 따른 예측 전력 소비 엔진의 동작의 개요를 나타내는 예시적인 흐름도.
도 5는 예시적인 일 실시예에 따른 최적화기 메커니즘의 동작의 개요를 나타내는 예시적인 흐름도.
예시적인 실시예들은 데이터 프로세싱 시스템을 위한 배터리의 수명을 증가시키기 위해 데이터 프로세싱 시스템상에서 실행되는 프로세스를 최적화하기 위한 메커니즘을 제공한다. 구체적으로, 예시적인 실시예들의 메커니즘에 따라, 사용자는 배터리 전력에 기초하여 데이터 프로세싱 시스템의 동작이 요구되는 목표 시간 기간을 지시하는 정보를 입력한다. 추가로, 사용자는 특정된 목표 시간 기간 동안 사용자가 이용하고자 하는 하나 이상의 프로세스, 애플리케이션 등을 특정할 수 있다. 예시적인 실시예들의 최적화기 메커니즘은 데이터 프로세싱 시스템상에서 실행되는 프로세스들의 우선순위를 식별된 사용자가 요구하는 하나 이상의 프로세스, 프로세스 의존성 및 운영체제 요구사항 등에 기초하여 결정한다. 다양한 프로세스에 할당된 우선순위들에 기초하여, 최적화기 메커니즘은 초기 프로세스 리스트를 생성한다.
최적화기 메커니즘은 예측 전력 소비 모듈을 사용하여 프로세스 소비의 경향 및 배터리 지속시간의 추정값을 계산한다. 계산된 경향 및 추정된 배터리 지속시간으로부터, 실행 프로세스 리스트(running process list: RPL) 및 동결 프로세스 리스트(frozen process list: FPL)가 생성된다. RPL은 목표 시간 기간 동안 실행될 프로세스들의 식별자를 포함하고, FPL은 배터리의 수명에 대한 사용자의 목표 요구사항을 충족하기 위해 동결 상태로 될 프로세스들의 식별자를 포함한다. 추가로, 최적화기 메커니즘은 배터리의 수명에 대한 사용자의 목표 요구사항(즉, 목표 시간 기간)을 얻기 위한 최적의 프로세서 클록 주파수를 결정할 수 있다.
예시적인 일 실시예에서, FPL 및 RPL이 채워지는 방식은 사용자에 의해 식별된 필수 프로세스를 제외하고 모든 프로세스를 FPL에 할당한 후, 예측 전력 소비 모듈에 의해 배터리의 수명에 대한 사용자의 목표 요구사항이 충족될 수 없다고 결정될 때까지 프로세스들을 우선순위에 따라 RPL로 이동시킨다. 다른 예시적인 일 실시예에서, 프로세스들은 RPL에서 시작하여, 예측 전력 소비 모듈이 배터리의 수명에 대한 사용자 목표 요구사항이 충족된다고 결정할 때까지 FPL로 이동될 수 있다.
최적화기 메커니즘은 시스템이 배터리의 수명에 대한 사용자의 요구사항을 축족할 것인지 여부를 결정하기 위해 계속해서 시스템을 모니터링한다. 만약 최적화기 메커니즘이 시스템의 상태를 모니터링하는 시점의 현재 프로세스들의 RPL 및 FPL로의 할당에 의해 목표 시간 기간 또는 배터리의 수명에 대한 사용자의 요구사항이 충족될 것이라면, 조정이 이루어질 필요가 없다. 그러나, 만약 목표 시간 기간 또는 배터리의 수명에 대한 사용자의 요구사항이 충족되지 않을 것이라면, 배터리의 수명에 대한 사용자의 요구사항이 충족될 가능성이 높아지도록 시스템의 동작을 조정하기 위해 RPL 및 FPL에 대한 조정이 동적인 방식으로 이루어진다. 그러한 모니터링 및 조정은 데이터 프로세싱 시스템이 배터리 전력으로 동작하는 동안 연속적 또는 주기적인 방식으로 이루어질 수 있다. 만약 어떤 시점에 배터리의 수명에 대한 사용자의 요구사항이 어떤 상황에서 충족될 수 없을 때, 사용자의 요구사항을 충족할 수 없다는 것을 나타내는 메시지가 사용자에게 출력될 수 있다.
당업자에 의해 이해되는 바와 같이, 본 발명은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 그에 따라, 본 발명은 전체적으로 하드웨어 실시예, 전체적으로 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함함) 또는 여기서 일반적으로 "회로," "모듈" 또는 "시스템"이라고 불릴 수 있는 소프트웨어와 하드웨어 특징들을 조합한 실시예의 형태를 가질 수 있다. 더 나아가, 본 발명은 컴퓨터 이용가능 프로그램 코드를 갖는 임의의 유형(tangible) 표현 매체에 포함되는 컴퓨터 프로그램 제품의 형태를 가질 수 있다.
하나 이상의 컴퓨터 이용가능 또는 컴퓨터 판독가능 매체(들)의 임의의 조합이 이용될 수 있다. 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체는, 예를 들어 전자, 자기, 광학, 전자기, 적외선, 또는 반도체 시스템, 기구, 장치 또는 전파 매체일 수 있지만 이에 한정되지는 않는다. 컴퓨터-판독가능 매체의 보다 구체적인 예(완전하지 않은 리스트)는 하나 이상의 전선을 갖는 전기 연결, 휴대용 컴퓨터 디스켓, 하드디스크, RAM, ROM, EPROM 또는 플래시 메모리, 광섬유, 휴대용 CD-ROM, 광 저장 장치, 인터넷 또는 인트라넷을 지원하는 것과 같은 전송 매체, 또는 자기 저장 장치를 포함할 것이다. 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체는 심지어 종이 또는 프로그램이 인쇄될 수 있는 다른 적합한 매체일 수도 있는데, 프로그램은, 예를 들어, 종이 또는 다른 매체의 광 스캔을 통해 전자적으로 캡처될 수 있고, 이어서 컴파일, 번역, 또는 필요하다면 적합한 다른 방법으로 처리되며, 이어서 컴퓨터 메모리에 저장된다. 이 문서의 내용에서, 컴퓨터-이용가능 또는 컴퓨터-판독가능 매체는 명령 실행 시스템, 기구, 또는 장치에 의해 또는 이들과 함께 사용될 프로그램을 보유, 저장, 전달, 전파, 또는 전송할 수 있는 임의의 매체일 수 있다. 컴퓨터-이용가능 매체는 베이스밴드로 또는 반송파의 부분으로서 전파되는 컴퓨터-이용가능 프로그램 코드가 포함된 데이터 신호를 포함할 수 있다. 컴퓨터 이용가능 프로그램 코드는 임의의 적합한 매체를 사용하여 전송될 수 있는데, 이는 무선, 유선, 광섬유 케이블, RF 등을 포함하지만 이에 한정되지는 않는다.
본 발명의 동작들을 실행하기 위한 컴퓨터 프로그램 코드는 하나 이상의 프로그래밍 언어의 조합으로 기록될 수 있는데, 이는 JavaTM, SmalltalkTM, C++ 등과 같은 객체지향 프로그래밍 언어 및 "C" 프로그래밍 언어나 유사한 프로그래밍 언어와 같은 종래의 절차적 프로그래밍 언어를 포함한다. 프로그램 코드는 전적으로 사용자 컴퓨터상에서, 독립형 소프트웨어 패키지로서 부분적으로 사용자 컴퓨터상에서, 부분적으로 사용자 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서, 또는 전적으로 원격 컴퓨터 또는 서버상에서 실행될 수 있다. 후자의 경우에, 원격 컴퓨터는 임의 종류의 네트워크를 통하여 사용자 컴퓨터에 연결될 수 있는데, 이는 LAN 또는 WAN, 또는 외부 컴퓨터로 이루어질 수 있는 연결(예를 들어, 인터넷 서비스 공급자를 이용한 인터넷을 통하여)을 포함한다.
예시적인 실시예들은 본 발명의 예시적인 실시예들에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 블록도 및/또는 흐름도를 참조하여 아래에서 설명된다. 흐름도 및/또는 블록도의 각각의 블록, 그리고 흐름도 및/또는 블록도의 블록들의 조합은 컴퓨터 프로그램 명령어들에 의해 구현될 수 있다고 이해될 것이다. 컴퓨터 프로그램 명령어들은, 명령어들이 컴퓨터 또는 다른 프로그램가능한 데이터 프로세싱 장치의 프로세서를 통하여 실행되어 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능/동작을 구현하기 위한 수단을 생성하도록, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 머신을 생성하기 위한 다른 프로그램가능한 데이터 프로세싱 장치의 프로세서로 제공될 수 있다.
이 컴퓨터 프로그램 명령어들은 또한, 컴퓨터-판독가능 매체에 저장된 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능/동작을 구현하는 명령어 수단을 포함하는 제조 물품을 생성하도록, 컴퓨터 또는 다른 프로그램가능한 데이터 프로세싱 장치가 특정 방법으로 기능하도록 지시할 수 있는 컴퓨터-판독가능 매체에 저장될 수 있다.
컴퓨터 프로그램 명령어들은 또한, 컴퓨터 또는 다른 프로그램가능한 장치상에 실행되는 명령어들이 흐름도 및/또는 블록도의 블록 또는 블록들에 특정된 기능/동작을 구현하기 위한 프로세스를 제공하도록, 컴퓨터 또는 다른 프로그램가능한 데이터 프로세싱 장치상에 로딩되어 컴퓨터 구현 프로세스를 생성하기 위해 일련의 동작 단계가 컴퓨터 또는 다른 프로그램가능한 장치상에서 수행되도록 할 수 있다.
도면의 흐름도 및 블록도는 본 발명의 다양한 실시예에 따른 시스템, 방법 및 컴퓨터 프로그램 제품의 가능한 구현의 구조, 기능, 및 동작을 도시한다. 이 점에서, 흐름도 또는 블록도의 각각의 블록은 모듈, 세그먼트, 또는 코드의 부분을 나타낼 수 있는데, 이는 특정 논리 함수(들)를 구현하기 위한 하나 이상의 실행가능 명령어를 포함한다. 일부 선택적인 구현에서, 블록에 기재된 기능은 도면에 기재된 순서와 다르게 이루어질 수 있다. 예를 들어, 연속적으로 도시된 두 블록이 사실 실질적으로 동시에 실행되거나, 포함되는 기능에 따라 때때로 반대 순서로 실행될 수 있다. 블록도 및/또는 흐름도의 각각의 블록, 및 블록도 및/또는 흐름도의 블록들의 조합은 특정 기능 또는 동작을 수행하는 특수 목적 하드웨어-기반 시스템 또는 특수 목적 하드웨어의 조합과 컴퓨터 명령어들에 의해 구현될 수 있다.
이제 도 1을 참조하면, 예시적인 실시예들의 특징이 구현될 수 있는 예시적인 데이터 프로세싱 시스템의 블록도가 도시되어 있다. 데이터 프로세싱 시스템(100)은 본 발명의 예시적인 실시예들을 위한 프로세스들을 구현하는 컴퓨터 이용가능 코드 또는 명령어들이 위치될 수 있는 컴퓨터의 하나의 예이다.
도시된 예에서, 데이터 프로세싱 시스템(100)은 노스 브리지와 메모리 컨트롤러 허브(NB/MCH; 102) 및 사우스 브리지와 입력/출력(I/O) 컨트롤러 허브(SB/ICH; 104)를 포함하는 허브 구조를 이용할 수 있다. 프로세싱 유닛(106), 주 메모리(108), 및 그래픽 프로세서(110)는 NB/MCH(102)에 연결된다. 그래픽 프로세서(110)는 가속 그래픽 포트(accelerated graphics port; AGP)를 통하여 NB/MCH(102)에 연결될 수 있다.
도시된 예에서, LAN 어댑터(112)는 SB/ICH(104)에 연결된다. 오디오 어댑터(116), 키보드 및 마우스 어댑터(120), 모뎀(122), ROM(124), HDD(126), CD-ROM 드라이브(130), USB 포트 및 기타 통신 포트(132), 및 PCI/PCIe 장치(134)는 버스(138) 및 버스(140)를 통해 SB/ICH(104)에 연결된다. PCI/PCIe 장치는, 예를 들어, 이더넷 어댑터, 애드-인 카드, 및 노트북 컴퓨터용 PC 카드를 포함할 수 있다. PCI는 카드 버스 컨트롤러를 사용하지만, PCIe는 사용하지 않는다. ROM(124)은, 예를 들어, 플래시 기본 입력/출력 시스템(BIOS)일 수 있다.
HDD(126) 및 CD-ROM 드라이브(130)는 버스(140)를 통해 SB/ICH(104)에 연결된다. HDD(126) 및 CD-ROM 드라이브(130)는, 예를 들어, IDE(integrated drive electronics) 또는 SATA(serial advanced technology attachment) 인터페이스를 이용할 수 있다. SIO(super I/O) 장치(136)는 SB/ICH(104)에 연결될 수 있다.
운영체제가 프로세싱 유닛(106) 상에서 실행된다. 운영체제는 도 1의 데이터 프로세싱 시스템(100) 내의 다양한 구성요소들의 제어를 제공하고 조정한다. 클라이언트로서, 운영체제는 Microsoft® Windows® XP와 같은 상업적으로 이용가능한 운영체제일 수 있다(Microsoft 및 Windows는 미국 및 기타 국가에서 Microsoft Corporation의 상표임). JAVATM 프로그래밍 시스템과 같은 객체-지향 프로그래밍 시스템이 운영체제와 함께 실행될 수 있고, 데이터 프로세싱 시스템(100)상에서 실행되는 JavaTM 프로그램 또는 애플리케이션으로부터 운영체제로의 호출을 제공한다(Java는 미국 및 기타 국가에서 Sun Microsystems, Inc.의 상표임).
서버로서, 데이터 프로세싱 시스템(100)은, 예를 들어, AIX®(Advanced Interactive Executive) 운영체제 또는 LINUX® 운영체제를 실행하는 IBM® eServerTM System p® 컴퓨터 시스템일 수 있다(eServer, System p, 및 AIX는 미국 및 기타 국가에서 International Business Machines Corporation의 상표이고, LINUX는 미국 및 기타 국가에서 Linus Torvalds의 상표임). 데이터 프로세싱 시스템(100)은 프로세싱 유닛(106)에 복수의 프로세서를 포함하는 대칭형 멀티프로세서(symmetric multiprocessor: SMP) 시스템일 수 있다. 선택적으로, 단일 프로세서 시스템이 이용될 수 있다.
애플리케이션 또는 프로그램, 객체-지향 프로그래밍 시스템 및 운영체제를 위한 명령어들은 HDD(126)와 같은 저장 장치상에 위치되고, 프로세싱 유닛(106)에 의한 실행을 위해 주 메모리(108)에 로딩될 수 있다. 본 발명의 예시적인 실시예들을 위한 프로세스들은 컴퓨터 이용가능 프로그램 코드를 사용하여 프로세싱 유닛(106)에 의해 수행될 수 있는데, 컴퓨터 이용가능 프로그램 코드는, 예를 들어, 주 메모리(108), ROM(124)과 같은 메모리에 위치되거나 또는 하나 이상의 주변 장치(126 및 130)에 위치될 수 있다.
도 1에 도시된 버스(138) 또는 버스(140)와 같은 버스 시스템은 하나 이상의 버스로 구성될 수 있다. 물론, 버스 시스템은 패브릭 또는 구조에 결합된 서로 다른 구성요소들 또는 장치들 간에 데이터의 전달을 제공하는 임의 종류의 통신 패브릭 또는 구조를 사용하여 구현될 수 있다. 도 1의 모뎀(122) 또는 네트워크 어댑터(112)와 같은 통신 유닛은 하나 이상의 데이터를 전송하고 수신하는데 사용되는 하나 이상의 장치를 포함할 수 있다. 메모리는, 예를 들어, 주 메모리(108), ROM(124) 또는 도 1의 NB/MCH(102)에서 발견되는 것과 같은 캐시일 수 있다.
당업자는 도 1의 하드웨어가 구현에 따라 변할 수 있다고 이해할 것이다. 기타 내부 하드웨어 또는 주변 장치(플래시 메모리, 동등한 비-휘발성 메모리, 또는 광학 디스크 드라이브 등)가 도 1에 도시된 하드웨어에 더하여 또는 이를 대신하여 사용될 수 있다. 또한, 예시적인 실시예들의 프로세스들은 본 발명의 사상 및 범위를 벗어나지 않고 이전에 언급된 SMP 시스템 이외의 멀티프로세서 데이터 프로세싱 시스템에 적용될 수 있다.
또한, 데이터 프로세싱 시스템(100)은 클라이언트 컴퓨팅 장치, 서버 컴퓨팅 장치, 태블릿 컴퓨터, 랩톱 컴퓨터, 전화 또는 기타 통신 장치, PDA 등을 포함하는 다수의 서로 다른 데이터 프로세싱 시스템들 중 임의의 형태를 가질 수 있다. 일부 예시적인 예에서, 데이터 프로세싱 시스템(100)은, 예를 들어, 운영체제 파일 및/또는 사용자-생성 데이터를 저장하기 위한 비-휘발성 메모리를 제공하기 위한 플래시 메모리로 구성되는 휴대용 컴퓨팅 장치일 수 있다. 본질적으로, 데이터 프로세싱 시스템(100)은 구조적 제한 없이, 임의의 알려졌거나 이후에 개발될 데이터 프로세싱 시스템일 수 있다.
하나의 예시적인 실시예에 따라, 데이터 프로세싱 시스템(100)은 하나의 동작 모드에서 벽 소켓 또는 기타 전력원으로부터의 일정한 전원이 아닌 배터리 전력과 같은 고갈되는 전원으로 동작하는 데이터 프로세싱 시스템이다. 예시적인 실시예를 위해, 데이터 프로세싱 시스템(100)은 벽 소켓 또는 기타 일정한 전기 공급원으로의 전기적 연결에 의해 충전가능한 배터리 전력 공급으로 동작하는 휴대용 컴퓨팅 장치(랩톱 컴퓨터 등)라고 가정할 것이다. 예시적인 실시예들은 데이터 프로세싱 시스템(100)이 일정한 전기 공급원에 연결되지 않고 저장된 배터리 전력 공급에 의해서만 동작해야하는 경우에 데이터 프로세싱 시스템(100)의 동작을 최적화하도록 동작한다.
사용자가 데이터 프로세싱 시스템(100)을 고갈되는 전력 공급(배터리 전력 공급 등)으로만 동작해야 하고, 선정된 시간 기간의 데이터 프로세싱 시스템(100)의 동작을 요구하는 경우, 예시적인 실시예들의 메커니즘이, 가능한 경우, 사용자에 의해 요구되는 동작의 전체 시간 기간 동안 원하는 동작을 제공하도록 데이터 프로세싱 시스템(100)의 동작을 동적으로 변경하는데 사용될 수 있다. 예시적인 실시예들의 메커니즘은 데이터 프로세싱 시스템(100)상에서 실행되는 프로세스들의 우선순위를 정하고, 이러한 우선순위들에 기초하여 프로세스가 실행되도록 허용하거나 프로세스를 동결 상태로 만든다. 얼마나 많은 프로세스를 동결 상태로 놓을지 결정하는 것은 사용자에 의해 특정된 필요한 동작의 시간 기간 동안의 예측 전력 소비 결정에 기초하여 이루어질 수 있다. 데이터 프로세싱 시스템(100)의 동작은 요구되는 동작의 시간 기간(여기서 목표 시간 기간이라고 불림) 동안 연속적이거나 주기적으로 모니터링되어, 데이터 프로세싱 시스템(100)이 목표 시간 기간 동안 동작하도록 보장하기 위해 어떤 프로세스가 실행되도록 허용되고 어떤 프로세스가 동결될지 동적으로 조정할 수 있다.
도 2는 예시적인 일 실시예에 따른 최적화기 메커니즘의 주 동작 요소들의 예시적인 블록도이다. 도 2에 도시된 바와 같이, 최적화기(200)는 컨트롤러(210), 장치 최적화기(220), 초기 프로세스 리스트 데이터 구조 저장소(230), 동결 프로세스 리스트 데이터 구조 저장소(240), 실행 프로세스 리스트 데이터 구조 저장소(250), 사용자 인터페이스(260), 장치 모니터링 에이전트(270), 및 장치 데이터 시트 데이터베이스(280)를 포함한다. 도 2의 요소들(210-280)은 하드웨어, 소프트웨어 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 예시적인 실시예들을 위해, 요소들(210-280)은 데이터 프로세싱 시스템의 하나 이상의 프로세서(예를 들어, 데이터 프로세싱 시스템(100)의 프로세싱 유닛(106) 등)상에서 실행되는 소프트웨어 명령어들로 여겨질 수 있다.
컨트롤러(210)는 최적화기(200)의 전체 동작을 제어하고 기타 요소들(220-280)의 동작을 조율한다. 장치 최적화기(220)는 데이터 프로세싱 시스템의 다양한 장치를 제어하고 통신하여 컨트롤러(210)로부터 수신되는 명령어들에 따라 그 동작을 변경한다. 예를 들어, 장치 최적화기(220)는 컨트롤러(210)로부터 명령어들을 수신한 것에 대한 응답으로, 장치 동작을 변경하도록(예를 들어, 장치들의 클록 주파수를 변경하거나, 장치들을 끄거나, 장치들의 동작 모드를 변경하는 것 등) 이 장치들 중의 하나 이상으로 제어 신호를 송신할 수 있다. 이러한 방식으로 제어될 수 있는 장치들은 프로세서(들), 메모리, 하드드라이브, 네트워크 어댑터, 출력 어댑터(그래픽 카드, 오디오 카드 등) 등을 포함하는 데이터 프로세싱 시스템의 임의의 하드웨어 장치일 수 있다.
초기 프로세스 리스트 데이터 구조(230)는 최적화기(200)가 처음 실행될 때 데이터 프로세싱 시스템상에서 실행되는 프로세스들의 리스트를 저장한다. 초기 프로세스 리스트 데이터 구조(230) 내의 프로세스들은 프로세스들에 우선순위를 정하고 그 후에 원하는 동작 목표 시간을 얻기 위한 데이터 프로세싱 시스템의 최적의 동작에 따라 프로세스들을 동결 리스트 또는 실행 리스트에 할당하기 위한 기초로서 사용된다.
동결 리스트 데이터 구조(240)는 데이터 프로세싱 시스템의 원하는 동작 시간(즉, 목표 시간 기간)을 얻기 위해 최적화기(200)가 동결 상태(즉, 프로세스가 활성화되어 실행되지는 않지만, 그 후의 프로세스 재시작을 위해 그 상태는 메모리에 유지되는 상태)로 되어야 한다고 결정한 프로세스들의 리스트를 저장한다. 실행 프로세스 리스트 데이터 구조(250)는 최적화기(200)가 목표 시간 기간 동안 실행되도록 허용되어야 한다고 결정한 프로세스들의 리스트를 저장한다. 프로세스들은 목표 시간 기간을 얻기 위해 필요에 따라, 또는 여분의 배터리 전력이 이용가능하다고 결정되는 경우, 최적화기(200)에 의해 이루어지는 결정에 따라 동적인 방식으로 동결 리스트 데이터 구조(240)와 실행 프로세스 리스트 데이터 구조(250) 사이에서 옮겨질 수 있다.
사용자 인터페이스(260)는 최적화기(200)가 사용자로부터 목표 시간 기간을 특정하는 입력을 수신하는 통신 인터페이스를 제공한다. 또한, 사용자 인터페이스(260)를 통해, 사용자는 목표 시간 기간 동안 동작하도록 사용자가 요구하는 하나 이상의 프로세스, 애플리케이션 등을 추가로 특정할 수 있다. 게다가, 사용자 인터페이스(260)는 최적화기(200)의 컨트롤러(210)에 의해 사용되어, 목표 시간 기간 동안 실행되도록 허용되어야 한다고 사용자가 특정한 프로세스, 애플리케이션 등을 고려하여, 목표 시간 기간 또는 목표 시간 기간의 나머지가 현재 상황에서 얻어질 수 있는지 여부를 나타내는 메시지를 사용자에게 출력할 수 있다.
장치 모니터링 에이전트(270)는 데이터 프로세싱 시스템의 다양한 장치(예를 들어, 프로세서(들), 하드드라이브(들), 네트워크 어댑터(들) 등)의 전력 소비를 모니터링하고, 목표 시간 기간 동안 이 장치들에 의해 소비될 전력의 양을 예측하기 위해 예측 전력 소비 동작을 수행한다. 장치 데이터 시트 데이터베이스(280)는 예측 전력 소비 동작을 돕기 위해, 장치 모니터링 에이전트(270)에 의해 모니터링되는 장치들의 각각에 관한 정보를 제공한다. 이 요소들(210-280)의 동작 및 상호작용은 이제 예시적인 일 실시예를 참조하여 더욱 상세히 설명될 것이다.
최적화기(200)의 동작은 최적화기의 동작을 시작하는 사용자에 의해 수동으로, 또는 이벤트(예를 들어, 데이터 프로세싱 시스템이 일정한 전원으로부터 분리되어 데이터 프로세싱 시스템이 고갈되는 전력 공급(예를 들어, 배터리 전력 공급)에 기초하여 동작하게 되는 것)에 대한 응답으로 자동으로 시작될 수 있다. 컨트롤러(210)는 고갈되는 전력 공급을 사용하여 데이터 프로세싱 시스템이 동작하도록 사용자가 요구하는 목표 시간 기간을 사용자가 특정하도록 요청함으로써 사용자에게 입력을 촉구할 수 있다. 또한, 컨트롤러(210)는 목표 시간 기간 동안 실행되도록 허용되도록 사용자가 요구하는 하나 이상의 프로세스, 애플리케이션 등을 특정하도록 사용자에게 촉구할 수 있다. 이 입력은 컨트롤러(210)에 의해 관련 메모리에 저장되어, 프로세스들을 동결 및 실행 리스트 데이터 구조에 어떻게 할당할지 결정하기 위해 컨트롤러(210)에 의해 사용될 수 있다.
컨트롤러(210)는 현재 실행 프로세스 리스트를 초기 프로세스 리스트 데이터 구조 저장소(230)에 컴파일한다. 이 초기 프로세스 리스트는, 사용자가 특정한 필수 프로세스와 함께, 우선순위가 정해진 프로세스들의 리스트를 결정하기 위해 컨트롤러(210)에 의해 사용된다. 컨트롤러(210)는 컨트롤러(210)에 의해 실행되는 선정된 일련의 규칙 및 로직에 따라 프로세서들의 각각에 우선순위를 할당한다. 이 규칙 및 로직은 프로세스들의 특성, 그들의 의존성 및 상호작용에 기초하여 프로세스들의 우선순위 순서를 특정한다. 예를 들어, 목표 시간 기간 동안 실행될 필요가 있다고 사용자에 의해 특정된 프로세스들은 가장 높은 우선순위를 갖는다. 필수 프로세스들이 의존하는 프로세스들은 다음으로 높은 우선순위를 갖는다. 운영체제에 의해 요구되는 프로세스들 또한 상대적으로 높은 우선순위를 갖는다. 사용자가 특정한 필수 프로세서들에 의해 이용되는 장치들에 의해 요구되는 프로세스들(예를 들어, 장치 드라이버 등)은 다음으로 높은 우선순위가 주어질 수 있다. 사용자가 특정한 어떤 프로세스에 의해서도 요구되지 않는 프로세스들, 사용자가 특정한 프로세스가 의존하는 프로세스들, 또는 사용자가 특정한 필수 프로세스에 의해 이용되는 장치들에 의해 요구되지 않는 프로세스들은, 예를 들어 가장 낮은 우선순위를 가질 수 있다. 본 설명을 보는 당업자에게 자명하듯이, 임의의 우선순위 방식이 예시적인 실시예들의 사상 및 범위를 벗어나지 않고 사용될 수 있다.
우선순위 리스트에 더해, 컨트롤러(210)는 데이터 프로세싱 시스템의 장치상의 프로세스들의 각각에 의해 소비될 것으로 예측되는 전력의 양을 결정하기 위해, 장치 모니터링 에이전트(270)의 예측 전력 소비 결정을 이용한다. 장치 모니터링 에이전트(270)가 그러한 예측 전력 소비를 수행할 수 있는 방법의 하나의 예는 공동으로 할당되고 동시계류중인 2008.06.28에 출원된 미국 특허출원 제12/147,803호에 설명되어 있다. 이 예시적인 메커니즘의 설명이 이제 제공될 것이다. 그러나, 이 예시적인 메커니즘에 대한 많은 변경이 예시적인 실시예들의 메커니즘과 함께 이용될 수 있다고 이해될 것이다. 또한, 데이터 프로세싱 시스템의 하나 이상의 장치상에서 실행되는 프로세스들에 대한 예측 전력 소비 결정을 수행하기 위한 기타 메커니즘이 예시적인 실시예들의 사상 및 범위를 벗어나지 않고 사용될 수 있다.
도 3은 예시적인 일 실시예에 따른 예측 전력 소비 엔진의 주 동작 요소들의 예시적인 블록도이다. 도 3에 도시된 바와 같이, 도 2의 장치 모니터링 에이전트(270)와 동일한 것일 수 있는 모니터링 에이전트(315)는 통신 네트워크에 의해 연결된 몇몇 리소스들(305) 상의 모니터링 동작을 실행하고 제어한다. 일련의 리소스들(305)은, 예를 들어, 하드디스크, CPU, 메모리, 네트워크 카드, 프린터, 백업 장치 등의 리소스들을 포함하는데, 이들의 소비 정보는 각각의 모니터링되는 리소스 상의 이용가능한 모든 정보를 포함하는 데이터시트 리포지터리(repository) 또는 데이터베이스(303)에 저장된다. 이 정보는 보통 장치 제조자에 의해 제공되는 장치 데이터시트를 통하여 이용가능하다.
모니터링 에이전트(315)는 복수의 서로 연결된 시스템에 분산될 수도 있는 리소스들(305)의 잠재적으로 큰 세트를 제어한다. 도 3에는 일 예로서, 단순함을 위해 단지 두 개의 리소스(CPU 및 메모리)만이 도시되어 있다. 모니터링 에이전트(315)는 프로세스당 리소스들의 사용을 모니터링한다. 모니터링 에이전트(315)는 나아가 각각의 동작에 대한 소비의 추정이 저장되는 장치 데이터시트 리포지터리 또는 데이터베이스(303)로부터 정보를 검색한다. 두 측정값을 합하여 예상되는 리소스의 소비가 추정된다. 예시적인 일 실시예에 따라, 장치 데이터시트 리포지터리(303)는 제조자의 에너지 소비 데이터시트로부터 얻어지는 값들을 포함하는데, 이들은 최종 에너지 소비 추정을 얻기 위해 모니터링 에이전트(315)에 의해 수집된 사용 메트릭과 함께 조합된다. 그러나 다른 가능한 솔루션들이 이용가능한데, 예를 들어, 저장된 값들은 장래의 재사용을 위해 저장되어 있는 기록 측정(historical measurement)의 결과일 수 있다.
예시적인 일 실시예에서, 새로운 특징이 뉴욕 아몽크의 International Business Machines(IBM) Corporation으로부터 이용가능한 IBM Tivoli 모니터링 툴에 의해 수집된 일부 파라미터들의 측정으로부터 시작하여 시스템의 전력 소비를 추정하는 시스템 이용가능성 모니터링 제품에 삽입된다. 각각의 리소스의 사용은 일부 특정 파라미터들에 따라 수정된 이러한 모니터링 툴을 통하여 계산될 수 있다. 예시적인 일 실시예에서, 계산된 사용의 메트릭은 리소스가 선정된 상태에 있는 동안의 시간의 측정에 기초한다. 각각의 리소스는 상태에 따른 리소스의 예상되는 전력 소비를 결정하는 관련 테이블을 갖는다. 예시적인 일 실시예에 따라, 리소스(이 예에서는 하드디스크)를 기술하는 가능한 테이블은 다음 정보를 갖는다.
소프트웨어 애플리케이션 A의 실행 중에 하드디스크 HD1이 변경된 모니터링 툴에 의해 위의 상태 2에서 X초, 위의 상태 4에서 Y초, 및 위의 상태 5에서 Z초인 것으로 검출되었다고 가정하자. 예시적인 실시예들의 모니터링 에이전트(315)는 이 모든 정보를 합하여, 소프트웨어 애플리케이션 A에 의해 사용될 때의 하드디스크 HD1의 총 전력 소비를 추정한다(예를 들어, 전력 = 1.6X+3.2Y+4.1Z). 유사한 계산이 소프트웨어 애플리케이션 A에 의해 사용되는 각각의 리소스에 대해 이루어지고, 소프트웨어 애플리케이션 A에 대한 총 전력 소비가 모니터링 에이전트(315)에 의해 추정된다. 각각의 구성요소는 전력 측정 동안 확인될 수 있는 구성요소 상태에 관련된 전력 소비의 기술(description)이 있는 관련 테이블을 갖는다.
도 4는 예시적인 일 실시예에 따른 예측 전력 소비 엔진(모니터링 에이전트(315) 또는 장치 모니터링 에이전트(270)에 의해 제공될 수 있는 것 등)의 동작의 개요를 나타내는 예시적인 흐름도이다. 도 4에서 개요가 나타난 동작은 소프트웨어 애플리케이션의 총 전력 소비의 추정을 생성하기 위한 논리 흐름을 보여준다. 동작은 소프트웨어 애플리케이션에 의해 사용되는 시스템 리소스들이 모니터링되면서 시작한다(단계 403). 가능한 모니터링되는 자원들의 목록은 저장 장치, CPU, 그래픽 카드, 하드디스크 및 보다 일반적으로 소프트웨어 애플리케이션의 실행 동안 전력 사용을 일으키는 임의 종류의 시스템 리소스를 포함한다. 위에 설명된 바와 같이, 시스템은 리소스가 선정된 상태에 있는 동안의 시간의 측정에 기초하여 사용 메트릭(metrics of the usage)을 계산한다. 각각의 리소스는 상태에 따른 예상되는 전력 소비를 결정하는 관련 테이블을 갖는다.
이 테이블은 검출된 상태에 따른 각각의 리소스에 의한 전력 소비의 예상되는 값을 얻기 위해 질의된다(단계 405). 소프트웨어 애플리케이션의 총 소비는 이전 단계들에서 계산된 메트릭과 수집된 예상되는 값을 합하여(예를 들어, 합산하여) 추정된다(단계 407). 과도한 전력 소비 때문에 임의의 교정 동작이 필요한지 여부에 관하여 결정이 이루어진다(단계 409). 만약 교정 동작이 필요하다면, 교정 동작이 실행된다(단계 411). 그 이후, 또는 만약 교정 동작이 필요하지 않다면, 동작은 단계(403)로 돌아간다. 당업자는 다른 동작들이 대신 실행될 수 있다고 쉽게 이해할 것인데, 예를 들어, 선정된 위험 임계치가 도달되는 경우 보다 극적인 교정 조치가 이루어질 수 있다(예를 들어, 데이터 프로세싱 시스템의 전체 기능이 위험에 처한 경우 리소스에 대한 액세스가 중단될 수 있음).
만약 프로그램 및 데이터가 상이한 방식으로 구성되거나, 다른 모듈 또는 기능이 제공되거나, 정보가 동등한 메모리 구조에 저장되는 경우 유사한 고려사항이 적용된다. 방법이 동등하거나 추가적인 단계들을 포함하는 경우 유사한 고려사항이 적용된다. 선택적으로, 예를 들어, 시스템이 설치되는 운영체제에 따라서도, 모니터링되는 리소스들 상의 정보를 얻기 위한 서로 다른 방법들이 사용될 수 있다. 예를 들어, 라이센스 관리 툴이 그러한 정보를 수집하도록 구성되는 것도 가능할 것이다.
단계(409 및 411)에서 "교정 동작"은 사실 예시적인 실시예들에 따라 프로세스 또는 애플리케이션을 동결 상태로 놓는 것일 수 있다. 이 동작은 프로세스, 애플리케이션 등의 예측 전력 소비의 측정값을 얻기 위해 각각의 프로세스, 애플리케이션 등에 관하여 수행될 수 있다. 이 예측 전력 소비는 목표 시간 기간 동안 특정 프로세스, 애플리케이션 등이 소비될 것으로 예상되는 전력의 양을 결정하기 위해 목표 시간 기간에 걸쳐 외삽 추정될(extrapolated) 수 있다. 이 전력량은 다른 애플리케이션, 프로세스 등에 대한 다른 전력량의 유사한 계산과 조합되어, 목표 시간 기간을 얻을 수 있는 애플리케이션, 프로세스 등의 조합을 결정할 수 있다.
다양한 리소스 상의 프로세스, 애플리케이션 등의 전력 소비를 결정하는 것에 더해, 프로세서 또는 리소스의 동작, 또는 클록킹 주파수를 변경하는 영향도 또한 유사한 방식으로 조사될 수 있다. 그러한 프로세서 또는 리소스의 클록킹 주파수 또는 동작 주파수가 변경될 수 있는 하나의 방법이 Advanced Computing Laboratory, Los Alamos National Laboratory, 기술 보고서 LA-UR-03-7582로서 이용가능한 수(Hsu) 등의 "Effective Dynamic Voltage Scaling through Accurate Performance Modeling"에 설명되어 있는데, 이는 참조를 위해 본 명세서에 포함된다. 따라서, 서로 다른 클록킹 주파수들의 프로세스 애플리케이션 등의 조합이 목표 시간 기간을 달성하기 위한 최적의 조합을 선택하기 위해 결정되고 사용될 수 있다.
더 나아가, 소프트웨어 애플리케이션에 의해 소비되는 총 전력량을 결정하는 대신, 전력 소비율이 나중에 데이터 프로세싱 시스템상의 소프트웨어 프로세스, 애플리케이션 등의 전력 소비를 결정하는데 사용하기 위해 결정되고 저장될 수 있다. 전력 소비율은 위에서 언급된 데이터 시트에 기초하여 또는 소프트웨어 프로세스, 애플리케이션 등의 역사적 모니터링에 기초하여 결정될 수 있다.
다시 도 2를 참조하면, 이러한 결정들에 기초하여, 컨트롤러(210)는 프로세스들을 실행 프로세스 리스트 데이터 구조(250) 및 동결 프로세스 리스트 데이터 구조(240)에 할당한다. 그러한 할당은 다수의 서로 다른 방법들로 이루어질 수 있는데, 이들 모두는 본 설명에 의해 당업자에게 자명해질 것이고, 예시적인 실시예들의 사상 및 범위 내인 것으로 고려된다. 예를 들어, 프로세스, 애플리케이션 등은 할당된 우선순위 및 프로세스 또는 애플리케이션의 특정 우선순위가 하나 이상의 선정된 임계치를 초과하는지 여부에 기초하여 처음에 리스트 데이터 구조들(240 및 250) 중의 하나에 할당될 수 있다. 따라서, 예를 들어, "레벨 4"와 같거나 이보다 낮은 우선순위를 갖는 모든 프로세스가 처음에 동결 프로세스 리스트(240)에 할당될 수 있다. "레벨 4"보다 높은 우선순위를 갖는 프로세스는 처음에 실행 프로세스 리스트(250)에 할당될 수 있다.
컨트롤러(210)는 이어서 장치 모니터링 에이전트(270)를 사용하여 프로세스들의 실행 또는 동결 리스트 데이터 구조(240, 250)에의 할당에 기초하여 데이터 프로세싱 시스템의 예측 전력 소비를 결정할 수 있다. 예측 전력 소비 및 고갈되는 전원으로부터 현재 이용가능한 전력에 기초하여, 예상되는 동작 시간 기간이 계산되고 목표 시간 기간 또는 목표 시간 기간의 나머지 부분과 비교된다. 만약 예상되는 동작 시간 기간이 목표 시간 기간과 같거나 이보다 크다면, 동결 프로세스 리스트 데이터 구조(240) 내의 프로세스들이 동결 상태로 된다. 이는 나중에 프로세스들이 재시작될 때의 검색을 위해 그 상태 정보를 저장한 후 이 프로세스들을 중지한다. 실행 프로세스 리스트 데이터 구조(250) 내의 프로세스들은, 적어도 컨트롤러(210)가 그 후의 유사한 평가에서 데이터 프로세싱 시스템의 동작의 환경이 목표 시간 기간이 충족될 수 없다는 것을 나타낸다고 결정할 때까지 계속해서 실행되도록 허용된다.
만약 예상되는 동작 시간 기간이 목표 시간 기간보다 작다면, 실행 및 동결 프로세스 리스트 데이터 구조(240, 250)로의 프로세스들의 할당의 조정이 이루어진다. 이 조정은, 예를 들어, 프로세스들을 우선순위 순서에 따라(즉, 제일 낮은 우선순위 먼저) 실행 프로세스 리스트 데이터 구조(250)에서 가져와 동결 프로세스 리스트 데이터 구조(240)에 추가하는 것을 포함할 수 있다. 물론, 복수의 더 낮은 우선순위의 실행 프로세스를 동결 프로세스 리스트로 옮기는 것과 하나의 더 높은 우선순위의 실행 프로세스를 동결 프로세스 리스트로 옮기는 것 사이에 트레이드 오프가 이루어질 수 있다. 또한, 원하는 목표 시간 기간을 얻기 위해 프로세서 또는 장치 동작 주파수 또는 클록킹 주파수에 변경이 이루어질 수 있는지 여부에 관하여 결정이 이루어질 수 있다. 목표 시간 기간, 또는 목표 시간 기간의 나머지를 충족하는 조정이 결정되고 나면, 이미 동결되어 있지는 않지만 동결 리스트에 위치된 이 프로세스들은 동결 상태로 된다.
만약 이동 동작 동안, 컨트롤러(210)가 사용자가 특정한 필수 프로세스들에 대응하는 프로세스, 애플리케이션 등의 우선순위에 도달하면, 컨트롤러(210)는 목표 시간 기간이 얻어질 수 없다고 결정할 수 있다. 그에 따라, 컨트롤러(210)는 목표 시간 기간이 얻어질 수 없다는 것을 나타내는 통지를 사용자 인터페이스(260)를 통해 사용자에게 전송할 수 있다. 또한, 통지는 데이터 프로세싱 시스템이 제공할 수 있는 동작 시간의 양을 특정할 수 있다. 이것은 사용자가 특정한 필수 프로세스들을 동결 프로세스 리스트에 위치시키지 않으면서 최대한 많은 프로세스를 동결 프로세스 리스트에 위치시킴으로써 최대 동작 시간일 수 있다.
상기 프로세스는 사용자에 의해 특정된 목표 시간 기간을 얻기 위해 필요한 대로 실행 프로세스 리스트 및 동결 프로세스 리스트의 그 후의 평가 및 조정이 이루어지며 연속적 또는 주기적으로 반복될 수 있다. 예시적인 실시예들의 사상 및 범위를 벗어나지 않고, 프로세스들을 처음에 동결 프로세스 리스트(FPL) 및 실행 프로세스 리스트(RPL)에 할당하기 위한 다른 메커니즘들이 이용될 수 있다고 이해될 것이다. 예를 들어, 우선순위 임계치를 사용하고 프로세스들이 임계치 위 또는 아래인지 여부에 기초하여 프로세스들을 할당하는 대신, 예시적인 일 실시예에서, FPL 및 RPL이 채워지는 방식은 사용자에 의해 식별된 필수 프로세스들을 제외하고 모든 프로세스를 FPL에 할당하고, 이어서 예측 전력 소비 모듈에 의해 배터리의 수명에 대한 사용자의 목표 요구사항이 충족될 수 없다고 결정될 때까지 우선순위 순서에 따라 프로세스들을 RPL로 옮기는 것이다. 다른 예시적인 일 실시예에서, 프로세스들은 RPL에서 시작되고, 예측 전력 소비 모듈이 배터리의 수명에 대한 사용자의 목표 요구사항이 충족된다고 결정할 때까지 FPL로 옮겨질 수 있다.
따라서, 예시적인 실시예들의 메커니즘은, 데이터 프로세싱 시스템의 동작 시간이 가능한 경우 사용자에 의해 특정된 목표 시간 주기 내에 유지되도록 데이터 프로세싱 시스템의 동작을 변경하기 위한 동적 메커니즘을 제공한다. 데이터 프로세싱 시스템의 동작 시간 기간은 고갈되는 전원의 현재 전력 레벨에 기초하여 목표 시간 기간 또는 목표 시간 기간의 나머지 동안 제공될 수 있는 것보다 많은 전력을 소비하는 장치상의 프로세스들을 중단함으로써 조정된다.
도 5는 예시적인 일 실시예에 따른 최적화기 메커니즘의 동작의 개요를 나타내는 예시적인 흐름도이다. 도 5에 도시된 바와 같이, 동작은 사용자 입력 또는 이벤트의 발생에 따라 최적화기 동작을 시작하며 시작한다(단계 510). 최적화기는 사용자가 목표 시간 기간 및 특정된 목표 시간 기간 동안 실행되도록 허용되어야 하는 0개 이상의 프로세스, 애플리케이션 등을 입력하도록 촉구한다(단계 520). 최적화기는 프로세스, 애플리케이션 등의 초기 리스트를 생성하고(단계 530), 사용자가 특정한 필수 프로세스/애플리케이션, 프로세스/애플리케이션의 의존성, 및 초기 리스트의 프로세스/애플리케이션의 속성 또는 특성상에 동작하는 하나 이상의 규칙에 기초하여 프로세스, 애플리케이션 등에 우선순위를 할당한다(단계 540).
최적화기는 예측 전력 소비 모델(모니터링 에이전트(270 또는 315)에 의해 제공되는 것 등)을 이용하여, 예를 들어, 각각의 프로세스에 대한 전력 소비의 경향 및 배터리 지속시간에 대한 추정을 계산한다(단계 550). 계산된 경향 정보, 추정된 배터리 지속시간, 및 우선순위 정보로부터, 실행 프로세스 리스트(RPL) 및 동결 프로세스 리스트(FPL)가 생성된다(단계 560). RPL은 목표 시간 기간 동안 실행될 프로세스들의 식별자를 포함하고, FPL은 배터리의 수명에 대한 사용자의 목표 요구사항을 충족하기 위해 동결 상태로 될 프로세스들의 식별자를 포함한다. 추가로, 최적화기 메커니즘은 배터리의 수명에 대한 사용자의 목표 요구사항(즉, 목표 시간 기간)을 얻기 위한 최적의 프로세서 클록 주파수를 결정할 수 있다.
최적화기 메커니즘은 계속해서 시스템이 배터리 전력에 대한 사용자의 요구사항을 충족할지 여부를 결정한다(단계 570). 만약 최적화기가 시스템의 상태를 모니터링하는 시점에서 프로세스들의 RPL 및 FPL로의 현재 할당에 따라 목표 시간 기간 또는 배터리 전력에 대한 사용자의 요구사항이 충족될 것이라면, 조정이 이루어질 필요가 없다(단계 580). 그러나, 만약 목표 시간 기간 또는 배터리 전력에 대한 사용자의 요구사항이 충족되지 않을 것이라면, 배터리 요구사항에 대한 사용자의 요구사항이 충족될 가능성이 높아지도록 시스템의 동작을 조정하기 위해, RPL 및 FPL에 할당된 프로세스들의 조정이 동적인 방식으로 이루어진다(단계 590). 그러한 모니터링 및 조정은 데이터 프로세싱 시스템이 배터리 전력으로 동작하는 동안 연속적 또는 주기적인 방식으로 이루어질 수 있다. 만약 어떤 시점에 배터리 전력에 대한 사용자의 요구사항이 어떤 상황에서 충족될 수 없다면(단계 600), 사용자의 요구사항을 충족할 수 없다는 것을 나타내는 메시지가 사용자에게 출력될 수 있다(단계 610).
목표 시간 기간이 지났는지 또는 데이터 프로세싱 시스템이 더 이상 고갈되는 전원으로 동작하지 않는지에 관한 결정이 이루어진다(단계 620). 예를 들어, 만약 사용자가 데이터 프로세싱 시스템을 일정한 전원(예를 들어, 벽 소켓 등)에 연결하면, 데이터 프로세싱 시스템이 더 이상 고갈되는 전원으로 동작하지 않는다고 결정할 수 있다. 만약 이들 중 어떤 조건이라도 존재한다면, 동결 프로세스들은 그들의 저장된 상태 정보를 이용하여 재시작되고(단계 630), 데이터 프로세싱 시스템은 통상의 방식으로 동작한다. 만약 이들 조건 중 어떤 것도 존재하지 않는다면, 동작은 단계(570)로 돌아간다.
따라서, 예시적인 실시예들은 고갈되는 전원 하의 데이터 프로세싱 시스템의 동작을 위한 목표 시간 기간을 얻기 위해 데이터 프로세싱 시스템의 동작을 조정하기 위한 메커니즘을 제공한다. 예시적인 실시예들의 메커니즘은 동적이고, 데이터 프로세싱 시스템의 변화하는 동작 조건에 맞게 조정될 수 있다. 예시적인 실시예들의 메커니즘은 데이터 프로세싱 시스템의 동작의 원하는 목표 시간 기간을 얻기 위해, 데이터 프로세싱 시스템의 개별 프로세스들의 전력 소비를 고려하고, 이 프로세스들에 할당된 우선순위에 따라 이 프로세스들의 세트를 동결 상태로 한다.
위에 기술된 바와 같이, 예시적인 실시예들은 전체적으로 하드웨어인 실시예, 전체적으로 소프트웨어인 실시예 또는 하드웨어 및 소프트웨어 요소를 모두 포함하는 실시예의 형태를 가질 수 있다고 이해될 것이다. 예시적인 일 실시예에서, 예시적인 실시예들의 메커니즘은 소프트웨어 또는 프로그램 코드로 구현되는데, 이는 펌웨어, 상주 소프트웨어, 마이크로코드 등을 포함하지만 이에 한정되지는 않는다.
프로그램 코드를 저장 및/또는 실행하기에 적합한 데이터 프로세싱 시스템은 시스템 버스를 통하여 메모리 요소들에 직접적으로 또는 간접적으로 연결되는 적어도 하나의 프로세서를 포함할 것이다. 메모리 요소들은 프로그램의 실제 실행 동안 이용되는 로컬 메모리, 벌크 저장소, 및 실행 동안 코드가 벌크 저장소로부터 검색되어야 하는 횟수를 줄이기 위해 적어도 일부 프로그램 코드의 일시적 저장을 제공하는 캐시 메모리를 포함할 수 있다.
입력/출력 또는 I/O 장치(키보드, 디스플레이, 포인팅 장치 등을 포함하지만 이에 한정되지는 않음)는 직접 또는 중간의 I/O 컨트롤러를 통하여 시스템에 연결될 수 있다. 네트워크 어댑터가 또한 시스템에 연결되어, 데이터 프로세싱 시스템이 중간의 사설 또는 공중 네트워크를 통하여 다른 데이터 프로세싱 시스템 또는 원격 프린터 또는 저장 장치에 연결될 수 있도록 할 수 있다. 모뎀, 케이블 모뎀 및 이더넷 카드는 네트워크 어댑터의 현재 이용가능한 종류의 단지 일부이다.
본 발명의 설명이 예시 및 설명의 목적으로 제시되었고, 본 발명이 개시된 형태로 한정되거나 제한되는 것으로 의도되지 않았다. 많은 변경 및 변화가 당업자에게 자명할 것이다. 실시예는 본 발명의 원리들 및 실제 응용을 가장 잘 설명하기 위해, 그리고 고려되는 특정 사용에 적합하도록 다양한 변경이 있는 다양한 실시예에 대해 당업자가 본 발명을 이해할 수 있도록 선택되었고 설명되었다.
100: 데이터 프로세싱 시스템
200: 최적화기
210: 컨트롤러
220: 장치 최적화기
230: 초기 프로세스 리스트 데이터 구조 저장 장치
240: 동결 프로세스 리스트 데이터 구조 저장 장치
250: 실행 프로세스 리스트 데이터 구조 저장 장치
260: 사용자 인터페이스
270: 장치 모니터링 에이전트
280: 장치 데이터시트 데이터베이스
305: 리소스들
315: 모니터링 에이전트
303: 소비 정보 데이터베이스(장치 데이터시트)
200: 최적화기
210: 컨트롤러
220: 장치 최적화기
230: 초기 프로세스 리스트 데이터 구조 저장 장치
240: 동결 프로세스 리스트 데이터 구조 저장 장치
250: 실행 프로세스 리스트 데이터 구조 저장 장치
260: 사용자 인터페이스
270: 장치 모니터링 에이전트
280: 장치 데이터시트 데이터베이스
305: 리소스들
315: 모니터링 에이전트
303: 소비 정보 데이터베이스(장치 데이터시트)
Claims (10)
- 데이터 프로세싱 시스템에서, 상기 데이터 프로세싱 시스템이 고갈되는 전원(a depleting power supply)을 사용할 때 동작의 목표 시간 기간(a target time period of operation)을 얻기 위해 상기 데이터 프로세싱 시스템의 동작 상태를 조정하기 위한 방법으로서,
상기 데이터 프로세싱 시스템에서 실행되는 개별 프로세스들의 예측 전력 소비를 결정하는 단계;
상기 고갈되는 전원이 제공할 수 있는 잔여 전력량을 결정하는 단계;
상기 개별 프로세스들의 상기 예측 전력 소비 및 상기 고갈되는 전원이 제공할 수 있는 상기 전력량에 기초하여, 상기 데이터 프로세싱 시스템이 상기 목표 시간 기간 동안 동작할 수 있도록 그 실행이 중단될 수 있는 프로세스들의 서브셋을 식별하는 단계; 및
상기 식별된 프로세스들의 서브셋을 중단된 실행 상태(a suspended execution state)로 하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 데이터 프로세싱 시스템의 상기 동작의 목표 시간 기간을 특정하는 사용자 입력을 수신하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 그 실행이 중단될 수 있는 프로세스들의 서브셋을 식별하는 단계는 상기 데이터 프로세싱 시스템에서 실행되는 상기 프로세스들의 우선순위를 정하는 단계를 포함하는, 방법. - 제3항에 있어서,
상기 데이터 프로세싱 시스템에서 실행되는 상기 프로세스들의 우선순위를 정하는 단계는 상기 프로세스들의 특성들에 따라 실행 프로세스들의 리스트의 프로세스들에 우선순위들을 할당하는 단계를 포함하고,
상기 프로세스들의 상기 특성들은 사용자가 상기 프로세스를 상기 목표 시간 기간 동안 실행될 필요가 있는 것으로 특정하였는지 여부를 지시하는 특성을 포함하는, 방법. - 제4항에 있어서,
상기 프로세스들의 상기 특성들은,
프로세스가 상기 사용자에 의해 상기 목표 시간 기간 동안 실행되도록 요구되는 것으로 지시된 하나 이상의 다른 프로세스를 갖는지 여부를 지시하는 특성,
프로세스가 운영체제에 의해 필요한지 여부를 지시하는 특성, 또는
상기 사용자에 의해 상기 목표 시간 기간 동안 실행되도록 요구되는 것으로 특정된 다른 하나의 프로세스에 의해 이용되는 상기 데이터 프로세싱 시스템 내의 장치의 적절한 동작을 위해 프로세스가 필요한지 여부를 지시하는 특성
중 적어도 하나를 포함하는, 방법. - 제1항에 있어서,
상기 중단된 실행 상태로 된 프로세스들의 리스트를 유지하는 단계; 및
상기 데이터 프로세싱 시스템의 일정한 전원(a constant supply of power)으로의 연결, 또는 상기 데이터 프로세싱 시스템에서 실행되는 개별 프로세스들의 상기 예측 전력 소비 또는 상기 목표 시간 기간의 나머지를 위한 여분의 이용가능한 전력량을 지시하는 상기 고갈되는 전원이 제공할 수 있는 잔여 전력량의 변화 중 하나에 대한 응답으로, 상기 중단된 실행 상태로 된 프로세스들의 상기 리스트로부터 프로세스들을 제거하는 단계
를 더 포함하는 방법. - 제6항에 있어서,
상기 중단된 실행 상태로 된 상기 프로세스들의 각각의 상태를 저장하는 단계;
상기 중단된 실행 상태로 된 프로세스들의 상기 리스트로부터 상기 프로세스가 제거되는 것에 대한 응답으로 프로세스의 상태를 복구하는 단계; 및
상기 상태가 복구된 프로세스를 실행하는 단계
를 더 포함하는 방법. - 제1항에 있어서,
상기 데이터 프로세싱 시스템에서 실행되는 개별 프로세스들의 상기 예측 전력 소비 및 상기 고갈되는 전원이 제공할 수 있는 상기 잔여 전력량에 기초하여, 상기 데이터 프로세싱 시스템의 하나 이상의 장치의 동작 속도를 변경하는 단계를 더 포함하는 방법. - 컴퓨터 판독가능 프로그램이 기록된 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
상기 컴퓨터 판독가능 프로그램은 컴퓨팅 장치에서 실행되는 경우 상기 컴퓨팅 장치로 하여금,
상기 컴퓨팅 장치에서 실행되는 개별 프로세스들의 예측 전력 소비를 결정하고,
고갈되는 전원이 제공할 수 있는 잔여 전력량을 결정하며,
상기 개별 프로세스들의 상기 예측 전력 소비 및 상기 고갈되는 전원이 제공할 수 있는 상기 전력량에 기초하여, 상기 데이터 프로세싱 시스템이 목표 시간 기간 동안 동작할 수 있도록 그 실행이 중단될 수 있는 프로세스들의 서브셋을 식별하고,
상기 식별된 프로세스들의 서브셋을 중단된 실행 상태로 하도록
하는 컴퓨터 프로그램 제품. - 프로세서; 및
상기 프로세서에 결합되는 메모리
를 포함하는 장치로서,
상기 메모리는 상기 프로세서에 의해 실행되는 경우 상기 프로세서로 하여금,
상기 컴퓨팅 장치에서 실행되는 개별 프로세스들의 예측 전력 소비를 결정하고,
고갈되는 전원이 제공할 수 있는 잔여 전력량을 결정하며,
상기 개별 프로세스들의 상기 예측 전력 소비 및 상기 고갈되는 전원이 제공할 수 있는 상기 전력량에 기초하여, 상기 데이터 프로세싱 시스템이 목표 시간 기간 동안 동작할 수 있도록 그 실행이 중단될 수 있는 프로세스들의 서브셋을 식별하고,
상기 식별된 프로세스들의 서브셋을 중단된 실행 상태로 하도록
하는 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/348,462 | 2009-01-05 | ||
US12/348,462 US8250384B2 (en) | 2009-01-05 | 2009-01-05 | Optimizer mechanism to increase battery length for mobile devices |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20100081280A true KR20100081280A (ko) | 2010-07-14 |
Family
ID=42312480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100000262A KR20100081280A (ko) | 2009-01-05 | 2010-01-04 | 이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8250384B2 (ko) |
KR (1) | KR20100081280A (ko) |
CN (1) | CN101782803A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150124196A (ko) * | 2014-04-28 | 2015-11-05 | 삼성전자주식회사 | 전력 관리 방법 및 그 방법을 처리하는 전자 장치 |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8145918B2 (en) * | 2007-06-28 | 2012-03-27 | International Business Machines Corporation | Monitoring system processes energy consumption |
US20090007128A1 (en) * | 2007-06-28 | 2009-01-01 | International Business Machines Corporation | method and system for orchestrating system resources with energy consumption monitoring |
US8250384B2 (en) | 2009-01-05 | 2012-08-21 | International Business Machines Corporation | Optimizer mechanism to increase battery length for mobile devices |
JP5347906B2 (ja) * | 2009-10-28 | 2013-11-20 | 富士通株式会社 | 情報生成装置、情報生成方法及び情報生成プログラム |
US8671413B2 (en) * | 2010-01-11 | 2014-03-11 | Qualcomm Incorporated | System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device |
US8909950B1 (en) * | 2010-04-18 | 2014-12-09 | Aptima, Inc. | Systems and methods of power management |
US20120072752A1 (en) * | 2010-09-22 | 2012-03-22 | Sony Corporation | Method and apparatus for providing power management enhancements |
US9229510B2 (en) | 2010-11-25 | 2016-01-05 | Industrial Technology Research Institute | Power management method for electro-chemical batteries in low capacity state |
US20120239949A1 (en) * | 2011-03-14 | 2012-09-20 | Research In Motion Limited | Electronic device and method for application and profile sensitive battery power management |
US8671299B2 (en) * | 2011-05-26 | 2014-03-11 | Google Inc. | Delaying the initiation of transitioning to a lower power mode by placing a computer system into an intermediate power mode between a normal power mode and the lower power mode |
US9430022B2 (en) * | 2011-06-23 | 2016-08-30 | University Of Virginia Patent Foundation | Method and apparatus for modular power management and protection of critical services in ambulatory medical devices |
US10091322B2 (en) | 2011-10-18 | 2018-10-02 | Qualcomm Incorporated | Method and apparatus for improving a user experience or device performance using an enriched user profile |
DE112011106028B4 (de) * | 2011-12-21 | 2020-01-02 | Intel Corporation | Mechanismus zum Bereitstellen von Energiesparoptionen für Computergeräte |
CN103198256B (zh) * | 2012-01-10 | 2016-05-25 | 凹凸电子(武汉)有限公司 | 用于检测应用程序状态的检测系统及方法 |
US9917739B2 (en) | 2012-02-20 | 2018-03-13 | Aptima, Inc. | Systems and methods for network pattern matching |
JP6113538B2 (ja) * | 2012-03-23 | 2017-04-12 | 株式会社東芝 | 制御装置、制御方法、プログラムおよび半導体装置 |
US20130275353A1 (en) * | 2012-04-16 | 2013-10-17 | Apple Inc. | Systems and methods for selecting media items |
JP5880256B2 (ja) * | 2012-04-26 | 2016-03-08 | ソニー株式会社 | 情報処理装置及び方法、プログラム、並びに情報処理システム |
US9235665B2 (en) * | 2012-10-10 | 2016-01-12 | Sandisk Technologies Inc. | System, method and apparatus for handling power limit restrictions in flash memory devices |
JP6099954B2 (ja) * | 2012-12-05 | 2017-03-22 | キヤノン株式会社 | 電子機器及びその制御方法、並びにプログラム |
CN103135731A (zh) * | 2013-02-05 | 2013-06-05 | 联宝(合肥)电子科技有限公司 | 一种便携式电脑的智能电源控制方法及装置 |
US9639145B2 (en) | 2013-06-20 | 2017-05-02 | Hewlett-Packard Development Company, L.P. | Method for determining whether to enter a S3 state based on user-defined permissible S3 period during an always on mode |
EP3118962A4 (en) * | 2014-03-12 | 2017-11-01 | Nec Corporation | Storage battery sharing system, information processing device, storage battery sharing method, and recording medium recording storage battery sharing program |
CN104331144A (zh) * | 2014-10-14 | 2015-02-04 | 南方电网科学研究院有限责任公司 | 一种实现电力终端低功耗的方法 |
US9696782B2 (en) | 2015-02-09 | 2017-07-04 | Microsoft Technology Licensing, Llc | Battery parameter-based power management for suppressing power spikes |
US10158148B2 (en) | 2015-02-18 | 2018-12-18 | Microsoft Technology Licensing, Llc | Dynamically changing internal state of a battery |
US9748765B2 (en) | 2015-02-26 | 2017-08-29 | Microsoft Technology Licensing, Llc | Load allocation for multi-battery devices |
JP6205401B2 (ja) * | 2015-03-13 | 2017-09-27 | 聯發科技股▲ふん▼有限公司Mediatek Inc. | 電力管理方法及び電力管理方法を適用する電力供給システム |
US9939862B2 (en) | 2015-11-13 | 2018-04-10 | Microsoft Technology Licensing, Llc | Latency-based energy storage device selection |
US10061366B2 (en) | 2015-11-17 | 2018-08-28 | Microsoft Technology Licensing, Llc | Schedule-based energy storage device selection |
US9793570B2 (en) | 2015-12-04 | 2017-10-17 | Microsoft Technology Licensing, Llc | Shared electrode battery |
US10903665B2 (en) | 2016-11-01 | 2021-01-26 | Microsoft Technology Licensing, Llc | Usage data based battery charge or discharge time determination |
US10488905B2 (en) | 2016-11-16 | 2019-11-26 | Microsoft Technology Licensing, Llc | Dynamic energy storage device discharging |
US11656666B2 (en) | 2016-11-16 | 2023-05-23 | Microsoft Technology Licensing, Llc | Dynamic power source selection, charging, and discharging |
JP6688726B2 (ja) * | 2016-12-26 | 2020-04-28 | 株式会社シマノ | 自転車用制御装置および自転車用制御システム |
US10725529B2 (en) | 2017-06-26 | 2020-07-28 | Microsoft Technology Licensing, Llc | Target based power management |
CN112256119A (zh) * | 2019-07-02 | 2021-01-22 | 中兴通讯股份有限公司 | 应用程序冷冻控制方法、装置、终端及可读存储介质 |
CN113747552B (zh) * | 2021-06-18 | 2024-03-19 | 荣耀终端有限公司 | 一种功耗优化方法和电子设备 |
US20230030132A1 (en) * | 2021-08-02 | 2023-02-02 | Samsung Electronics Co., Ltd. | Application optimization method and apparatus supporting the same |
CN115802453A (zh) * | 2021-09-09 | 2023-03-14 | 上海华为技术有限公司 | 用电设备的功耗控制方法、装置及系统 |
CN115016631B (zh) * | 2021-11-22 | 2023-07-18 | 荣耀终端有限公司 | 进程调度方法和终端设备 |
CN113886196B (zh) * | 2021-12-07 | 2022-03-15 | 上海燧原科技有限公司 | 片上功耗管理方法、电子设备及存储介质 |
EP4195044A1 (fr) * | 2021-12-09 | 2023-06-14 | Bull SAS | Méthode d'optimisation de la consommation énergétique d'une infrastructure informatique par suspension de travaux |
CN114138095B (zh) * | 2022-01-29 | 2022-05-10 | 阿里巴巴(中国)有限公司 | 互联网数据中心idc的功耗处理方法、设备和可读介质 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996019764A1 (en) * | 1994-12-22 | 1996-06-27 | Intel Corporation | Power budgeting with device specific characterization of power consumption |
US6151568A (en) * | 1996-09-13 | 2000-11-21 | Sente, Inc. | Power estimation software system |
US7423983B1 (en) * | 1999-09-20 | 2008-09-09 | Broadcom Corporation | Voice and data exchange over a packet based network |
JP2002222033A (ja) * | 2001-01-29 | 2002-08-09 | Nec Corp | 省電力システム、タスク省電力処理方法、及びそのプログラム |
JP3582649B2 (ja) * | 2001-08-03 | 2004-10-27 | セイコーエプソン株式会社 | 印刷装置、印刷方法、印刷装置の制御プログラムおよび印刷装置の制御プログラムを記録した媒体 |
KR100446510B1 (ko) * | 2002-02-04 | 2004-09-04 | 삼성전자주식회사 | 휴대용 전자단말의 전원 관리 방법 |
JP4171835B2 (ja) * | 2002-04-26 | 2008-10-29 | 学校法人日本大学 | 並列マージソート処理装置及び方法並びにプログラム |
US6907010B2 (en) * | 2002-10-11 | 2005-06-14 | Interdigital Technology Corporation | Dynamic radio link adaptation for interference in cellular systems |
WO2005037388A1 (ja) * | 2003-10-21 | 2005-04-28 | Sony Computer Entertainment Inc. | 電子装置 |
US7197652B2 (en) * | 2003-12-22 | 2007-03-27 | International Business Machines Corporation | Method and system for energy management in a simultaneous multi-threaded (SMT) processing system including per-thread device usage monitoring |
KR100626945B1 (ko) * | 2005-04-26 | 2006-09-20 | 주식회사 팬택 | 이동통신단말기에서의 소비전력 제어 방법 및 이를구현하는 이동통신단말기 |
KR100704697B1 (ko) * | 2005-07-21 | 2007-04-10 | 경북대학교 산학협력단 | 배터리의 소비 전력 제어 방법 및 상기 방법이 적용되는휴대용 기기 |
US20080268841A1 (en) | 2005-07-26 | 2008-10-30 | Koninklijke Philips Electronics, N.V. | Method of Registering a Battery-Powered Device in a Wireless Network |
DE102006046184B4 (de) * | 2006-09-29 | 2009-01-02 | Infineon Technologies Ag | Verfahren, Vorrichtung und Computerprogrammprodukt zur Ermittlung einer voraussichtlichen Überschreitung einer maximal erlaubten Leistungsaufnahme eines mobilen elektronischen Geräts und mobiles elektronisches Gerät |
US20090007128A1 (en) * | 2007-06-28 | 2009-01-01 | International Business Machines Corporation | method and system for orchestrating system resources with energy consumption monitoring |
US8145918B2 (en) * | 2007-06-28 | 2012-03-27 | International Business Machines Corporation | Monitoring system processes energy consumption |
US20090007108A1 (en) * | 2007-06-29 | 2009-01-01 | Hanebutte Ulf R | Arrangements for hardware and software resource monitoring |
US7849344B2 (en) * | 2007-07-20 | 2010-12-07 | International Business Machines Corporation | Method for improving accuracy in providing information pertaining to battery power capacity |
JP2009075934A (ja) * | 2007-09-21 | 2009-04-09 | Seiko Epson Corp | データ処理装置、データ処理方法およびデータ処理プログラム |
JP4410278B2 (ja) * | 2007-10-04 | 2010-02-03 | レノボ・シンガポール・プライベート・リミテッド | 電子機器、電子機器の電力制御方法、およびコンピュータが実行するためのプログラム |
US8250384B2 (en) | 2009-01-05 | 2012-08-21 | International Business Machines Corporation | Optimizer mechanism to increase battery length for mobile devices |
-
2009
- 2009-01-05 US US12/348,462 patent/US8250384B2/en active Active
-
2010
- 2010-01-04 CN CN201010001405A patent/CN101782803A/zh active Pending
- 2010-01-04 KR KR1020100000262A patent/KR20100081280A/ko active IP Right Grant
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150124196A (ko) * | 2014-04-28 | 2015-11-05 | 삼성전자주식회사 | 전력 관리 방법 및 그 방법을 처리하는 전자 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN101782803A (zh) | 2010-07-21 |
US8250384B2 (en) | 2012-08-21 |
US20100174928A1 (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20100081280A (ko) | 이동식 장치를 위한 배터리의 수명을 증가시키기 위한 최적화기 메커니즘 | |
CN107003706B (zh) | 非暂时性计算机可读存储介质和用于管理作业的装置 | |
EP2807533B1 (en) | System and method for battery load management in a portable computing device | |
US8886983B2 (en) | System and method for portable power source management | |
CN103890693B (zh) | 基于参数报告更新的阈值基准 | |
US9235252B2 (en) | Dynamic balancing of power across a plurality of processor domains according to power policy control bias | |
US8341441B2 (en) | Reducing energy consumption in a cloud computing environment | |
US8392736B2 (en) | Managing memory power usage | |
US20130311794A1 (en) | System and method for dynamic battery current load management in a portable computing device | |
US20210089108A1 (en) | Battery runtime and performance management based upon presence detection | |
JP2007052478A (ja) | ジョブ管理装置、ジョブ管理方法、ジョブ管理プログラム | |
US8412960B2 (en) | Recording-medium storing power consumption reduction support program, information processing device, and power consumption reduction support method | |
US8719607B2 (en) | Advanced Pstate structure with frequency computation | |
Zhang et al. | Trapped capacity: Scheduling under a power cap to maximize machine-room throughput | |
US10114438B2 (en) | Dynamic power budgeting in a chassis | |
JP2011108045A (ja) | 計算機システム、管理サーバ及び電力削減方法 | |
Fargo et al. | Autonomic performance-per-watt management (APM) of cloud resources and services | |
Lee et al. | Causes and fixes of unexpected phone shutoffs | |
Kurihara et al. | Application power consumption estimation considering software dependency in Android | |
US8909954B2 (en) | Branch circuit power measurement and dynamic power distribution | |
JP6928263B2 (ja) | 情報処理装置、計算機制御方法、および計算機制御プログラム | |
CN118144639A (zh) | 一种蓄电池剩余使用时间的预测方法、装置、介质、设备 | |
CN117850566A (zh) | 一种IaaS云平台中宿主机电源动态管理算法 |
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 | ||
NORF | Unpaid initial registration fee |