KR101448974B1 - 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들 - Google Patents

한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR101448974B1
KR101448974B1 KR1020137009521A KR20137009521A KR101448974B1 KR 101448974 B1 KR101448974 B1 KR 101448974B1 KR 1020137009521 A KR1020137009521 A KR 1020137009521A KR 20137009521 A KR20137009521 A KR 20137009521A KR 101448974 B1 KR101448974 B1 KR 101448974B1
Authority
KR
South Korea
Prior art keywords
mobile device
use case
performance
processor
performance scaling
Prior art date
Application number
KR1020137009521A
Other languages
English (en)
Other versions
KR20130044373A (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 퀄컴 인코포레이티드
Publication of KR20130044373A publication Critical patent/KR20130044373A/ko
Application granted granted Critical
Publication of KR101448974B1 publication Critical patent/KR101448974B1/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
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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)
  • Stored Programmes (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Power Sources (AREA)

Abstract

모바일 디바이스 상에서의 동작을 위해 지정된 성능 스케일링 알고리즘들을 최적화하기 위한 시스템들 및 방법들이 개시된다. 시스템 메모리는 테스트 로직 외에도 프로그램 저장소, 사용 사례 저장소 및 결과들 저장소를 포함한다. 프로그램 저장소는 성능 스케일링 알고리즘과 한 세트의 파라미터들의 조합으로 정의된 한 세트의 프로그램들을 포함한다. 사용 사례 저장소는 시간에 따라 모바일 디바이스의 최종 사용자들에 의해 수행될 예상 작업들을 식별하는 정보를 포함한다. 결과들 저장소는 각각의 사용 사례에 의해 정의된 작업들에 대해 한 세트의 프로그램들 각각이 실행된 후 결정된 각각의 메리트 값을 조직화한다. 테스트 로직은 실행시에, 저장된 메리트 값들에 응답하여 사용 사례들 각각에 대해 모바일 디바이스를 조정하고 선택 프로그램을 연관시킨다. 메리트 값들은 성능 메트릭과 전력 메트릭의 함수로써 결정된다.

Description

한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들{SYSTEMS AND METHODS FOR OPTIMIZING THE CONFIGURATION OF A SET OF PERFORMANCE SCALING ALGORITHMS}
무선 통신 프로토콜들, 에너지 저장 밀도, 프로세서 성능 및 효율, 그리고 셀룰러 송신기들의 밀도 증가에 있어 기술적 진보들은 1990년대에 무선 디지털 네트워크들의 도입을 가능하게 했다. 2세대 모바일 디바이스들의 사용이 더 확산됨에 따라, 인터넷에 대한 액세스를 포함하는 데이터 서비스들에 대한 요구가 증가하고 있음이 명백해졌다. 3세대 무선 통신 시스템들을 이용한 데이터 송신을 위해 회선 교환보다는 패킷 교환의 도입이 스트리밍 미디어를 모바일 디바이스에 전달하는데 요구되는 데이터 송신 레이트들의 증가들을 가능하게 했다.
오늘날의 데이터 네트워크 가능 모바일 디바이스들은 최종 사용자에게 다양한 애플리케이션들을 제공하기 위한 고성능 프로세서들을 포함한다. 그러나 성능에 대한 요구는 그에 상응하는 전력 소비의 증가를 초래한다. 최신 프로세서들의 전력 소실은 주어진 구현에 요구되는 트랜지스터들의 수와 클록 주파수 모두가 증가함에 따라 빠르게 증가하고 있다. 유감스럽게도, 배터리 기술은 이러한 데이터 네트워크 가능 무선 디바이스들의 에너지 요건들과 보조를 맞추지 못해왔고, 이는 애플리케이션 성능과 배터리 수명 간의 설계 트레이드 오프로 이어진다. 최대 성능을 위해 배터리 수명이 희생될 수 있다고 결정되는 경우에도, 흔히 손 크기 하우징들 내의 배터리와 전자 회로들 모두에 대해 열 관리가 문제가 될 수 있다.
고성능 및 저 전력 소비를 제공하는 프로세서들에 대한 요구는 프로세서 설계들에서 동적 전압 및 주파수 스케일링(DVFS: dynamic voltage and frequency scaling)의 사용을 이끌어 왔다. DVFS는 전력 소비와 성능 간의 트레이드 오프들을 가능하게 한다. DVFS를 이용하도록 설계된 프로세서들은 프로세서의 클록 주파수가 전압의 상응하는 조정과 함께 조정되게 한다. 클록 주파수만을 감소시키는 것은 유용하지 않은데, 이는 어떠한 전력 절약이든 실행 시간 증가만큼 상쇄되어, 소비되는 총 에너지의 순 감소를 야기하지 않기 때문이다. 그러나 동작 전압의 감소는 소비되는 전력의 비례 절약을 야기한다.
DVFS 가능 프로세서들에 대한 주요한 문제는 성능과 전력 절약 간의 균형을 어떻게 제어하는가 하는 것이다. 종래의 DVFS 제어 알고리즘은 예상 작업량이 기한까지 시간을 늘리도록 허용하는 수정된 성능 레벨을 식별하기 위해 유휴 시간의 측정을 사용한다. 즉, 더 낮은 전압 및 더 느린 클록 주파수로 프로세서를 작동시킴으로써 유휴 시간이 감소된다. 이러한 접근 방식은 연속적이고 알려져 있는 작업량에 대해서는 적절할 수 있지만, 많은 모바일 디바이스 애플리케이션들은 상호적이고 그리고/또는 프로세서에 불규칙적이거나 예측할 수 없는 요구들을 한다. 따라서 어떠한 알고리즘도 모든 모바일 디바이스 애플리케이션들, 애플리케이션 조합들 및 사용들에 대해 최선이 아님이 명백하다.
모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법은 상기 모바일 디바이스 상에서의 실행에 적합한 한 세트의 성능 스케일링 알고리즘들을 정의하는 단계, 상기 한 세트의 성능 스케일링 알고리즘들의 개개의 멤버들 각각에 대해 적절한 한 세트의 파라미터들을 식별하는 단계, 한 세트의 프로그램들을 정의하기 위해 상기 한 세트의 파라미터들을 상기 한 세트의 성능 스케일링 알고리즘들의 개개의 멤버와 연관시키는 단계, 상기 모바일 디바이스 상에서 수행될 한 세트의 작업들에 응답하여 제 1 사용 사례(use case)를 식별하는 단계, 성능 메트릭과 전력 메트릭의 함수로써 메리트(merit) 값을 생성하기 위해 상기 한 세트의 프로그램들을 상기 제 1 사용 사례에 적용하는 단계, 및 상기 제 1 사용 사례에 대한 최대 메리트 값을 식별하는 단계를 포함한다.
한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법의 대안적인 실시예에서, 상기 방법은 상기 최대 메리트 값의 함수로써 상기 사용 사례에 대해 실행할 제 1 프로그램을 상기 한 세트의 프로그램들 중에서 선택하는 단계를 더 포함한다.
일부 예시적인 실시예들에서, 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법은 셀룰러 전화, 호출기, 개인용 디지털 보조기기, 리더(reader), 위성 전화, 네비게이션 디바이스, 또는 무선 접속성을 가진 컴퓨팅 디바이스 중 하나에 구현된다.
한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법의 대안적인 실시예에서, 상기 방법은 상기 제 1 사용 사례와는 다른 다음 사용 사례를 식별하는 단계, 및 각각의 사용 사례들에 대해 상기 한 세트의 프로그램들을 적용하는 단계와 상기 최대 메리트 값을 식별하는 단계를 반복하는 단계를 더 포함한다.
한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 바로 이전의 방법의 또 다른 대안적인 실시예들에서, 상기 방법은 성능 스케일링 스케줄을 생성하기 위해 각각의 사용 사례에 대해 상기 한 세트의 프로그램들 중에서 최대 메리트 값을 초래하는 멤버의 표시를 저장하는 단계, 및 상기 모바일 디바이스 상에 상기 성능 스케일링 스케줄을 저장하는 단계를 더 포함한다.
한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 바로 이전의 방법의 다른 대안적인 실시예에서, 상기 방법은 특정 사용 사례가 상기 모바일 디바이스 상에서 언제 활동중인지를 검출하는 단계, 및 상기 모바일 디바이스 상에서 성능 스케일링 알고리즘과 한 세트의 파라미터들의 조합을 선택적으로 적용하는 단계를 더 포함한다.
다른 양상에 따르면, 모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템이 개시된다. 상기 방법은 비휘발성 메모리에 통신 가능하게 연결된 프로세서를 포함한다. 상기 비휘발성 메모리는 그 내부에, 성능 스케일링 알고리즘과 한 세트의 파라미터들의 각각의 조합으로 정의된 한 세트의 프로그램들을 포함하는 프로그램 저장소, 상기 모바일 디바이스 상에서 수행될 한 세트의 작업들에 응답하는 한 세트의 사용 사례들을 포함하는 사용 사례 저장소, 및 상기 한 세트의 사용 사례들의 멤버들 각각에 대해 상기 모바일 디바이스 상에서 상기 한 세트의 프로그램들의 각각의 멤버를 적용한 이후에 생성되는 각각의 메리트 값을 포함하는 결과들 저장소를 저장하였다.
모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템의 예시적인 실시예에서, 상기 사용 사례 저장소에 저장된 상기 한 세트의 사용 사례들은 상기 모바일 디바이스의 판매자에 의해 정의된다.
모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템의 대안적인 실시예에서, 상기 메리트 값은 성능 메트릭과 전력 메트릭의 함수이다.
모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템의 또 다른 대안적인 실시예에서, 상기 시스템은 상기 사용 사례 저장소 내의 상기 한 세트의 사용 사례들에 대해 상기 한 세트의 프로그램들의 선택 멤버를 연관시키도록 구성된 로직을 더 포함한다.
더욱이, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하는 시스템은, 성능 스케일링 알고리즘과 한 세트의 파라미터들의 각각의 조합으로 정의된 한 세트의 프로그램들을 저장하기 위한 메커니즘들, 상기 모바일 디바이스의 동작을 제어하기 위한 메커니즘들 ― 상기 메커니즘들은 상기 모바일 디바이스 상에서 수행될 한 세트의 작업들을 포함하는 한 세트의 사용 사례들을 적용함 ―, 상기 한 세트의 사용 사례들에 대한 상기 한 세트의 프로그램들의 동작에 응답하여 성능 메트릭 및 전력 메트릭을 결정하기 위한 메커니즘들, 상기 성능 메트릭과 상기 전력 메트릭의 함수로써 메리트 값을 생성하기 위한 메커니즘들, 성능 스케일링 스케줄을 생성하기 위해 선택 프로그램을 식별하여 각각의 사용 사례에 연관시키기 위한 메커니즘들, 및 상기 성능 스케일링 스케줄을 상기 모바일 디바이스에 전달하기 위한 메커니즘들을 포함한다.
예시적인 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하는 시스템은 상기 모바일 디바이스 상에서 수행될 예상 작업들을 시간의 퍼센트로서 식별하는 한 세트의 사용 사례들을 포함한다.
다른 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하는 시스템은 상기 성능 메트릭과 상기 전력 메트릭의 곱으로서 생성된 메리트 값을 포함한다.
또 다른 양상에서, 컴퓨터 판독 가능 프로그램 코드가 구체화된 컴퓨터 사용 가능 매체를 포함하는 컴퓨터 프로그램 물건이 개시된다. 상기 컴퓨터 판독 가능 프로그램 코드는 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 실행 및 구현하도록 적응된다. 상기 컴퓨터 프로그램 물건은 상기 모바일 디바이스 상에서의 실행에 적합한 한 세트의 성능 스케일링 알고리즘들을 정의하도록 구성된 로직, 상기 한 세트의 성능 스케일링 알고리즘들의 개개의 멤버들 각각에 대해 적절한 한 세트의 파라미터들을 식별하도록 구성된 로직, 테스트 중인 모바일 디바이스를 성능 스케일링 알고리즘과 파라미터들의 선택 세트의 선택 조합을 사용하여 동작하게 조정하도록 구성된 로직 ― 상기 로직은 테스트 중인 상기 모바일 디바이스를 사용 사례에 따라 추가로 조정하도록 구성됨 ―, 테스트 중인 상기 모바일 디바이스의 동작에 응답하여 성능 메트릭 및 전력 메트릭을 결정하도록 구성된 로직, 상기 성능 메트릭과 상기 전력 메트릭의 함수로써 메리트 값을 생성하도록 구성된 로직, 성능 스케일링 스케줄에 대한 포인트를 생성하기 위해 최대 메리트 값의 생성을 초래하는, 성능 스케일링 알고리즘과 파라미터들의 각각의 세트의 각각의 조합을 식별하여 연관시키도록 구성된 로직, 및 상기 성능 스케일링 스케줄을 상기 모바일 디바이스에 전달하도록 구성된 로직을 포함한다.
대안적인 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 실행 및 구현하도록 적응된 컴퓨터 프로그램 물건은, 각각의 성능 스케일링 알고리즘, 파라미터들의 각각의 세트, 및 각각의 사용 사례의 조합으로 정의된 추가 테스트 사례들이 언제 존재하는지를 결정하도록 구성된 로직을 더 포함하며, 상기 로직은 테스트 중인 상기 모바일 디바이스를 반복적으로 조정하여, 상기 성능 메트릭 및 상기 전력 메트릭을 결정하고, 각각의 메리트 값을 생성하도록 추가로 구성된다.
대안적인 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 실행 및 구현하도록 적응된 컴퓨터 프로그램 물건은 다수의 프로세서 코어들의 실행을 제어하기에 적합한 로드 밸런싱 알고리즘을 포함한다.
다른 대안적인 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 실행 및 구현하도록 적응된 컴퓨터 프로그램 물건은 상기 모바일 디바이스 상에서 수행될 예상 작업들을 시간의 퍼센트로서 식별하는 한 세트의 사용 사례들을 포함한다.
또 다른 대안적인 실시예에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 실행 및 구현하도록 적응된 컴퓨터 프로그램 물건은 상기 성능 메트릭과 상기 전력 메트릭의 곱으로부터 계산된 메리트 값을 포함한다.
또 다른 양상에서, 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법이 개시된다. 상기 방법은 상기 모바일 디바이스 상에서의 실행에 적합한 한 세트의 성능 스케일링 알고리즘들을 저장하는 단계, 한 세트의 프로그램들을 정의하기 위해 상기 한 세트의 성능 스케일링 알고리즘들의 개개의 멤버들 각각에 대해 적절한 한 세트의 파라미터들을 상기 한 세트의 성능 스케일링 알고리즘들의 개개의 멤버와 연관시키는 단계, 상기 모바일 디바이스 상에서 수행될 작업들에 응답하여 한 세트의 사용 사례들을 식별하는 단계, 성능 스케일링 스케줄을 생성하기 위해 각각의 사용 사례에 대해 상기 한 세트의 프로그램들 중에서 최대 메리트 값을 초래하는 멤버의 표시를 저장하는 단계, 상기 모바일 디바이스 상에 상기 성능 스케일링 스케줄을 저장하는 단계, 특정 사용 사례가 상기 모바일 디바이스 상에서 언제 활동중인지를 검출하는 단계, 및 상기 모바일 디바이스 상에서 성능 스케일링 알고리즘과 상기 한 세트의 파라미터들의 조합을 선택적으로 적용하는 단계를 포함한다.
일부 예시적인 실시예들에서, 상기 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법은 셀룰러 전화, 호출기, 개인용 디지털 보조기기, 리더, 위성 전화, 네비게이션 디바이스, 또는 컴퓨팅 디바이스 중 하나에서 동작한다.
모바일 디바이스 상에서 동작하기에 적합한 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들이 다음 도면들을 참조로 더 잘 이해될 수 있다. 도면들 내의 컴포넌트들이 반드시 비율이 맞아야 하는 것은 아니며, 대신에 성능 스케일링 알고리즘들 및 각각의 런타임 파라미터들을 포함하는 한 세트의 프로그램들로부터 생성된 결과들을 질적으로 측정하는 원리들을 명확히 설명하는데 강조를 둔다. 더욱이, 도면들에서, 동일한 참조 부호들이 서로 다른 시점들 전체에 걸쳐 해당 부분들을 명시한다.
도 1은 모바일 디바이스의 실시예를 나타내는 개략도이다.
도 2는 도 1의 모바일 디바이스의 특징들을 나타내는 개략도이다.
도 3은 도 1의 모바일 디바이스 상에서 동작하는 성능 스케일링 알고리즘들을 관리 및 노출하기 위한 방법의 실시예를 나타내는 흐름도이다.
도 4는 도 1의 모바일 디바이스 상에서 동작 가능한 컴퓨터 프로그램 물건의 실시예를 나타내는 흐름도이다.
도 5는 도 1의 모바일 디바이스에 대한 성능 메트릭의 실시예를 나타내는 도표이다.
도 6a 및 도 6b는 사용 사례들의 실시예들을 나타내는 개략도들을 포함한다.
도 7은 테스트 환경의 실시예를 나타내는 개략도이다.
도 8은 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법의 실시예를 나타내는 흐름도이다.
"예시적인"이라는 단어는 본 명세서에서 "예시, 실례 또는 예증으로서의 역할"을 의미하는데 사용된다. 본 명세서에서 "예시적인" 것으로서 설명되는 어떠한 양상도 다른 양상들에 비해 반드시 선호되거나 유리한 것으로 해석되는 것은 아니다.
이 설명에서, "애플리케이션"이라는 용어는 또한 객체 코드, 스크립트들, 바이트 코드, 마크업 언어 파일들 및 패치들과 같은 실행 가능 콘텐츠를 갖는 파일들을 포함할 수도 있다. 추가로, 본 명세서에서 언급되는 "애플리케이션"은 또한 공개될 필요가 있을 수도 있는 문서들이나 액세스될 필요가 있는 다른 데이터 파일들과 같이, 본래 실행 가능하지 않은 파일들을 포함할 수도 있다.
이 설명에서, "모바일 디바이스"라는 용어는 배터리와 같은 한정된 용량의 파워 서플라이로 작동하는 임의의 디바이스를 설명하는데 사용된다. 수십 년간 배터리 작동 모바일 디바이스들이 사용되어 왔지만, 3세대("3G") 무선 기술의 출현과 결부된 충전 가능한 배터리들의 기술적 진보들은 다양한 능력들을 가진 수많은 모바일 디바이스들을 가능하게 하였다. 따라서 모바일 디바이스는 무엇보다도, 셀룰러 전화, 위성 전화, 호출기, PDA, 스마트폰, 네비게이션 디바이스, 스마트북 또는 리더, 미디어 플레이어, 앞서 언급한 디바이스들의 조합, 무선 접속성을 가진 랩톱 컴퓨터일 수 있다.
모바일 디바이스 상에 다양한 기능들을 구현하기 위한 다중 코어 프로세서들 및 전용 하드웨어 자원들의 도입 및 배터리 수명의 개선에 대한 지속적인 요구는 만족스러운 최종 사용자 체험을 제공하면서 전력 소비를 줄이도록 모바일 디바이스를 동적으로 조정하는 작업을 더 복잡하게 만들어왔다. 응답으로, 다수의 성능 스케일링 알고리즘들을 관리 및 노출하기 위한 개선된 모바일 디바이스 및 방법들이 개시된다. 이용 가능한 서로 다른 모바일 디바이스들의 수, 디바이스들과 통신하는데 사용되는 다양한 통신 프로토콜들이나 표준들, 이용 가능한 서로 다른 타입들의 애플리케이션들, 디바이스가 사용되는 서로 다른 방식들 등은, 모든 가능한 동작 조합들에 대해 어떠한 단일 접근 방식이나 솔루션도 조정 또는 최적화될 수 없다는 점을 명확히 한다.
응답으로, 모바일 디바이스에 대해 한 세트의 성능 스케일링 알고리즘들을 제공 및 구현하는 것이 제안된다. 한 세트의 성능 스케일링 알고리즘들의 이용 가능성은 선택 성능 스케일링 알고리즘들이 정확히 적용될 때 성능 영향을 최소화하면서 전력 절약 기회들을 제공한다. 한 세트의 성능 스케일링 알고리즘들을 다양한 모바일 디바이스들의 제조업체들에 노출하는 것이 추가로 제안된다. 제조업체들은 다양한 사용 조건들에 대해 원하는 성능을 기반으로 모바일 디바이스들에 대한 선택 또는 최적화된 성능 스케일링 솔루션들을 제공하는데 관심이 있을 것으로 여겨진다. 이러한 제조업체 선택 또는 최적화된 솔루션들은 시동시 적용될 수 있다. 어떤 상황들에서, 제조업체들은 자신들의 고객들에게 각각의 모바일 디바이스들을 통해 성능 스케일링 대안들을 노출할 의향이 있을 수도 있다. 이러한 상황들에서, 제조업체는 최종 사용자가 시동시 적용될 수 있는 원하는 성능 및 배터리 수명을 선택할 수 있게 할 애플리케이션 프로그래밍 인터페이스를 제공 또는 수정할 수 있거나 성능 스케일링 솔루션의 런타임 선택 및 대체를 실시간으로 제공할 수 있다. 이러한 대안적인 런타임 솔루션들은 모바일 디바이스 상에서의 모든 성능 스케일링 솔루션들의 완벽한 불능화를 포함할 수 있다.
모바일 디바이스 상에서 성능 스케일링 알고리즘들을 관리 및 노출하기 위한 방법들은 일반적으로 소프트웨어 또는 펌웨어와 하드웨어의 조합을 통해 구현된다. 소프트웨어와 펌웨어는 모바일 디바이스 상에서 동작 가능한 하나 또는 그보다 많은 프로세서들에 연결된 비휘발성 메모리 엘리먼트에 저장될 수 있다. 비휘발성 메모리 엘리먼트에 저장된 소프트웨어는 적당한 명령 실행 시스템(마이크로프로세서)에 전달되어 그 시스템에 의해 실행된다. 모바일 디바이스에 대한 하드웨어 구현은 다음의 기술들: 이산 전자 컴포넌트들, 데이터 신호들에 대한 로직 기능들을 구현하기 위한 로직 게이트들을 갖는 이산 로직 회로(들), 적절한 로직 게이트들을 갖는 주문형 집적 회로, 프로그래밍 가능 게이트 어레이(들)(PGA: programmable gate array), 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array) 등 중에서 임의의 기술 또는 이들의 조합을 포함할 수 있으며, 이러한 기술들은 모두 해당 기술분야에 잘 알려져 있다.
도 1을 참조하면, 이 도면은 무선 전화 형태인 모바일 디바이스(100)의 예시적인 비-한정 양상의 도면이다. 도시된 바와 같이, 모바일 디바이스(100)는 함께 연결된 디지털 신호 프로세서(110) 및 아날로그 신호 프로세서(126)를 포함하는 온-칩(on-chip) 시스템(102)을 포함한다. 도 1에 예시된 바와 같이, 디스플레이 제어기(128) 및 터치스크린 제어기(130)가 디지털 신호 프로세서(110)에 연결된다. 온-칩 시스템(102) 외부의 터치스크린 디스플레이(132)가 디스플레이 제어기(128) 및 터치스크린 제어기(130)에 연결된다.
도 1은 또한, 비디오 인코더(134), 예를 들어 "PAL(phase-alternating line)" 인코더, "SECAM(sequential couleur avec memoire)" 인코더, "NTSC(national television system(s) committee)" 인코더 또는 임의의 다른 비디오 인코더가 디지털 신호 프로세서(110)에 연결됨을 나타낸다. 또한, 비디오 증폭기(136)가 비디오 인코더(134) 및 터치스크린 디스플레이(132)에 연결된다. 비디오 포트(138)가 비디오 증폭기(136)에 연결된다. 도 1에 도시된 바와 같이, 범용 직렬 버스("USB(universal serial bus)") 제어기(140)가 디지털 신호 프로세서(110)에 연결된다. 또한, USB 포트(142)가 USB 제어기(140)에 연결된다. 메모리(112) 및 가입자 식별 모듈(SIM: subscriber identity module) 카드(146)가 또한 디지털 신호 프로세서(110)에 연결될 수 있다. 또한, 도 1에 도시된 바와 같이, 디지털 카메라(148)가 디지털 신호 프로세서(110)에 연결될 수 있다. 예시적인 양상에서, 디지털 카메라(148)는 전하 결합 소자("CCD(charge-coupled device") 카메라 또는 상보성 금속 산화물 반도체("CMOS(complementary metal-oxide semiconductor)") 카메라이다.
도 1에 더 예시된 바와 같이, 스테레오 오디오 코덱(150)이 아날로그 신호 프로세서(126)에 연결될 수 있다. 더욱이, 오디오 증폭기(152)가 스테레오 오디오 코덱(150)에 연결될 수 있다. 예시적인 양상에서, 제 1 스테레오 스피커(154) 및 제 2 스테레오 스피커(156)가 오디오 증폭기(152)에 연결된다. 도 1은 마이크로폰 증폭기(158)가 또한 스테레오 오디오 코덱(150)에 연결될 수 있음을 보여준다. 추가로, 마이크로폰(160)이 마이크로폰 증폭기(158)에 연결될 수 있다. 특정 양상에서, 주파수 변조("FM(frequency modulation)") 라디오 튜너(162)가 스테레오 오디오 코덱(150)에 연결될 수 있다. 또한, FM 안테나(164)가 FM 라디오 튜너(162)에 연결된다. 또한, 스테레오 헤드폰들(166)이 스테레오 오디오 코덱(150)에 연결될 수 있다.
도 1은 또한, 무선 주파수("RF(radio frequency)") 트랜시버(168)가 아날로그 신호 프로세서(126)에 연결될 수 있음을 나타낸다. RF 스위치(170)가 RF 트랜시버(168) 및 RF 안테나(172)에 연결될 수 있다. 도 1에 도시된 바와 같이, 키패드(174)가 아날로그 신호 프로세서(126)에 연결될 수 있다. 또한, 마이크로폰을 구비한 모노 헤드셋(176)이 아날로그 신호 프로세서(126)에 연결될 수 있다. 또한, 진동기 디바이스(178)가 아날로그 신호 프로세서(126)에 연결될 수 있다. 도 1은 또한 파워 서플라이(180), 예를 들어 배터리가 온-칩 시스템(102)에 연결됨을 보여준다. 특정 양상에서, 파워 서플라이는 교류("AC(alternating current)") 전원에 접속된 AC-DC 변압기로부터 유도되는 재충전 가능한 DC 배터리 또는 DC 파워 서플라이를 포함한다.
도 1은 또한, 모바일 디바이스(100)가 모니터 모듈(114)을 포함할 수 있음을 보여준다. 모니터 모듈(114)은 온-칩 시스템(102) 전역에 분산된 다수의 가동 센서들과 그리고 모바일 디바이스(100)의 디지털 신호 프로세서(110)와 통신한다. 도 1에 도시된 바와 같이, 터치스크린 디스플레이(132), 비디오 포트(138), USB 포트(142), 카메라(148), 제 1 스테레오 스피커(154), 제 2 스테레오 스피커(156), 마이크로폰(160), FM 안테나(164), 스테레오 헤드폰들(166), RF 스위치(170), RF 안테나(172), 키패드(174), 모노 헤드셋(176), 진동기(178) 및 파워 서플라이(180)는 온-칩 시스템(102) 외부에 있다. 그러나 모니터 모듈(114)은 또한 모바일 디바이스(100) 상에서 동작 가능한 자원들의 실시간 관리에 도움이 되도록 아날로그 신호 프로세서(126) 및 디지털 신호 프로세서(110)에 의해 이러한 외부 디바이스들 중 하나 또는 그보다 많은 디바이스로부터 하나 또는 그보다 많은 표시들 또는 신호들을 수신할 수 있다고 이해되어야 한다.
특정 양상에서, 본 명세서에서 설명되는 방법 단계들 중 하나 또는 그보다 많은 단계는 메모리(112)에 저장된 실행 가능 명령들 및 파라미터들에 의해 구현될 수 있다. 이러한 명령들은 본 명세서에서 설명되는 방법들을 수행하도록 디지털 신호 프로세서(110), 아날로그 신호 프로세서(126) 또는 다른 프로세서에 의해 실행될 수 있다. 또한, 프로세서들(110, 126), 메모리(112), 그 내부에 저장된 명령들, 또는 이들의 조합은 본 명세서에서 설명되는 방법 단계들 중 하나 또는 그보다 많은 단계를 수행하기 위한 수단의 역할을 할 수 있다.
도 2는 도 1의 모바일 디바이스(100)의 특징들을 나타내는 개략도이다. 도 2에 지시된 바와 같이, 디지털 신호 프로세서(110)는 버스(211)를 통해 메모리(112)에 연결된다. 디지털 신호 프로세서(110)는 N개의 코어 프로세서들을 갖는 다중 코어 프로세서이다. 즉, 디지털 신호 프로세서(110)는 제 1 코어(222), 제 2 코어(224) 및 제 N 코어(230)를 포함한다. 알려진 바와 같이, 제 1 코어(222), 제 2 코어(224) 및 제 N 코어(230) 각각은 전용 애플리케이션 또는 프로그램을 지원하기 위해 이용 가능하다. 대안으로, 이용 가능한 코어들 중 2개 또는 그보다 많은 코어에 걸친 처리를 위해 하나 또는 그보다 많은 애플리케이션들 또는 프로그램들이 분산될 수 있다.
제 1 코어(222), 제 2 코어(224) 내지 제 N 코어(230)는 단일 집적 회로 다이 상에 집적될 수 있거나, 아니면 이들은 다중 회로 패키지로 개별 다이들 상에 집적 또는 연결될 수도 있다. 설계자들은 하나 또는 그보다 많은 공유 캐시들을 통해 제 1 코어(222), 제 2 코어(224) 내지 제 N 코어(230)를 연결할 수 있으며 그들은 버스, 링, 그물망(mesh) 및 크로스바 토폴러지들과 같은 네트워크 토폴러지들을 통해 메시지 또는 명령 전달을 구현할 수 있다.
예시된 실시예에서, RF 트랜시버(268)는 디지털 회로 엘리먼트들을 통해 구현되며 ("코어"로 표기된) 코어 프로세서(210)와 같은 적어도 하나의 프로세서를 포함한다. 이러한 디지털 구현에서, RF 트랜시버(268)는 버스(213)를 통해 메모리(112)에 연결된다.
버스(211)와 버스(213) 각각은 해당 기술분야에 공지된 바와 같이, 하나 또는 그보다 많은 유선 또는 무선 접속들을 통하는 다수의 통신 경로들을 포함할 수 있다. 버스(211) 및 버스(213)는 통신들을 가능하게 하기 위한, 제어기들, 버퍼들(캐시들), 드라이버들, 리피터들 및 수신기들과 같은, 단순화를 위해 생략된 추가 엘리먼트들을 가질 수 있다. 또한, 버스(211) 및 버스(213)는 앞서 언급한 컴포넌트들 사이의 적절한 통신들을 가능하게 하기 위한 어드레스, 제어 및/또는 데이터 접속들을 포함할 수 있다.
모바일 디바이스(100)에 의해 사용되는 로직이 도 2에 도시된 것과 같이 소프트웨어로 구현될 경우, 시동 로직(250), 관리 로직(260), DVFS 인터페이스 로직(270), 애플리케이션 저장소(280) 내의 애플리케이션들 및 파일 시스템(290)의 부분들 중 하나 또는 그보다 많은 것이 임의의 컴퓨터 관련 시스템 또는 방법과 관련하여 또는 이들에 의한 사용을 위해 임의의 컴퓨터 판독 가능 매체 상에 저장될 수 있다는 점에 주목해야 한다.
본 문서의 맥락에서, 컴퓨터 판독 가능 매체는 컴퓨터 관련 시스템 또는 방법과 관련하여 또는 이들에 의한 사용을 위해 컴퓨터 프로그램 및 데이터를 포함하거나 저장할 수 있는 전자, 자기, 광 또는 다른 물리적 디바이스 또는 수단이다. 다양한 로직 엘리먼트들과 데이터 저장소들이 컴퓨터 기반 시스템, 프로세서 포함 시스템, 또는 명령 실행 시스템, 장치 또는 디바이스로부터 명령들을 페치(fetch)하여 명령들을 실행할 수 있는 다른 시스템과 같은 명령 실행 시스템, 장치 또는 디바이스와 관련하여 또는 이들에 의한 사용을 위해 임의의 컴퓨터 판독 가능 매체에 구현될 수 있다. 본 문서의 맥락에서, "컴퓨터 판독 가능 매체"는 명령 실행 시스템, 장치 또는 디바이스와 관련하여 또는 이들에 의한 사용을 위해 프로그램을 저장, 전달, 전파 또는 전송할 수 있는 임의의 수단일 수 있다.
컴퓨터 판독 가능 매체는 예를 들어, 전자, 자기, 광, 전자기, 적외선 또는 반도체 시스템, 장치, 디바이스 또는 전파 매체일 수 있지만, 이에 한정되는 것은 아니다. 컴퓨터 판독 가능 매체의 더 특정한 예들(완전하진 않은 리스트)은 하나 또는 그보다 많은 와이어들을 갖는 전기 접속(전자), 휴대용 컴퓨터 디스켓(자기), 랜덤 액세스 메모리(RAM: random-access memory)(전자), 판독 전용 메모리(ROM: read-only memory)(전자), 소거 가능한 프로그래밍 가능 판독 전용 메모리(EPROM, EEPROM 또는 플래시 메모리)(전자), 광섬유(광) 및 휴대용 콤팩트 디스크 판독 전용 메모리(CDROM: compact disc read-only memory)(광)를 포함할 것이다. 프로그램은 예컨대 종이나 다른 매체의 광학적 스캐닝을 통해 전자적으로 캡처된 다음, 필요하다면 적당한 방식으로 컴파일되거나, 해석 또는 이와 달리 처리되고, 다음에 컴퓨터 메모리에 저장될 수 있으므로, 컴퓨터 판독 가능 매체는 심지어 프로그램이 인쇄되는 종이나 다른 적당한 매체일 수도 있다는 점에 주목한다.
시동 로직(250), 관리 로직(260) 및 가능하다면 DVFS 인터페이스 로직(270) 중 하나 또는 그보다 많은 로직이 하드웨어로 구현되는 대안적인 실시예에서, 다양한 로직은 다음의 기술들: 데이터 신호들에 대한 로직 기능들을 구현하기 위한 로직 게이트들을 갖는 이산 로직 회로(들), 적절한 조합 로직 게이트들을 갖는 주문형 집적 회로(ASIC), 프로그래밍 가능 게이트 어레이(들)(PGA), 필드 프로그래밍 가능 게이트 어레이(FPGA) 등 중에서 임의의 기술 또는 이들의 조합으로 구현될 수 있으며, 이러한 기술들은 각각 해당 기술분야에 잘 알려져 있다.
메모리(112)는 플래시 메모리나 고체 상태 메모리 디바이스와 같은 비휘발성 데이터 저장 디바이스이다. 단일 디바이스로서 도시된다 하더라도, 메모리(112)는 디지털 신호 프로세서 및/또는 RF 트랜시버(268) 내의 코어(210)(또는 추가 프로세서 코어들)에 연결된 개별 데이터 저장소들을 갖는 분산형 메모리 디바이스일 수도 있다.
시동 로직(250)은 제 1 코어(222), 제 2 코어(224) 내지 제 N 코어(230)와 같은 이용 가능한 코어들 중 하나 또는 그보다 많은 코어의 성능을 관리 또는 제어하기 위한 선택 프로그램을 선택적으로 식별하여 로딩하고 실행하기 위한 하나 또는 그보다 많은 실행 가능 명령들을 포함한다. 선택 프로그램은 내장된 파일 시스템(290)의 프로그램 저장소(296)에서 발견될 수 있으며 성능 스케일링 알고리즘(297)과 한 세트의 파라미터들(298)의 특정 조합으로 정의된다. 선택 프로그램은 RF 트랜시버(268) 내의 코어(210)와 디지털 신호 프로세서 내의 코어 프로세서들 중 하나 또는 그보다 많은 코어에 의해 실행될 때, 모니터 모듈(114)에 의해 제공되는 하나 또는 그보다 많은 신호들에 따라 각각의 프로세서 코어의 성능을 스케일링하도록 동작할 수 있다. 이와 관련하여, 모니터 모듈(114)은 이벤트들, 프로세스들, 애플리케이션들, 자원 상태 조건들, 경과 시간, 온도 등의 하나 또는 그보다 많은 표시자들을 제공할 수 있다.
관리 로직(260)은 각각의 프로세서 코어들 중 하나 또는 그보다 많은 코어에 대한 동작 성능 스케일링 프로그램을 종료할 뿐만 아니라, 이용 가능한 코어들 중 하나 또는 그보다 많은 코어의 성능을 관리 또는 제어하기 위한 더 적당한 대체 프로그램을 선택적으로 식별하여 로딩하고 실행하기 위한 하나 또는 그보다 많은 실행 가능 명령들을 포함한다. 관리 로직(260)은 런타임 시 또는 모바일 디바이스에 전원이 인가되어 디바이스의 운영자에 의해 사용되고 있는 동안 이러한 기능들을 수행하도록 배치된다. 대체 프로그램은 내장된 파일 시스템(290)의 프로그램 저장소(296)에서 발견될 수 있으며 성능 스케일링 알고리즘(297)과 한 세트의 파라미터들(298)의 특정 조합으로 정의된다. 대체 프로그램은 RF 트랜시버(268) 내의 코어(210)나 디지털 신호 프로세서 내의 코어 프로세서들 중 하나 또는 그보다 많은 코어에 의해 실행될 때, 모니터 모듈(114)에 의해 제공되는 하나 또는 그보다 많은 신호들 또는 다양한 프로세서 코어들의 각각의 제어 입력들 상에 제공되는 하나 또는 그보다 많은 신호들에 따라 각각의 프로세서 코어의 성능을 스케일링하도록 동작할 수 있다. 이와 관련하여, 모니터 모듈(114)은 이벤트들, 프로세스들, 애플리케이션들, 자원 상태 조건들, 경과 시간, 온도 등의 하나 또는 그보다 많은 표시자들을 제공할 수 있다.
DVFS 인터페이스 로직 또는 인터페이스 로직(270)은 내장된 파일 시스템(290)에 저장된 정보를 관측, 구성하거나 아니면 업데이트하도록 외부 입력들을 제시, 관리하고 이들과 상호 작용하기 위한 하나 또는 그보다 많은 실행 가능 명령들을 포함한다. 일 실시예에서, 인터페이스 로직(270)은 USB 포트(142)를 통해 수신되는 제조업체 입력들과 함께 동작할 수 있다. 이러한 입력들은 프로그램 저장소(296)로부터 삭제되거나 프로그램 저장소(296)에 추가될 하나 또는 그보다 많은 프로그램들을 포함할 수 있다. 대안으로, 입력들은 프로그램 저장소(296) 내의 프로그램들 중 하나 또는 그보다 많은 프로그램에 대한 편집들이나 변경들을 포함할 수 있다. 더욱이, 입력들은 시동 로직(250)과 관리 로직(260) 중 하나 또는 둘 다에 대한 하나 또는 그보다 많은 변경들 또는 이들의 전체 대체들을 식별할 수 있다. 예로서, 입력들은 수신 신호 전력이 식별된 임계치 아래로 떨어질 때 RF 트랜시버(268)에서 모든 성능 스케일링을 보류하도록 모바일 디바이스(100)에 명령하는 관리 로직(260)에 대한 변경을 포함할 수 있다. 추가 예로서, 입력들은 비디오 코덱(134)이 활동중일 때 원하는 프로그램을 적용하도록 모바일 디바이스(100)에 명령하는 관리 로직(260)에 대한 변경을 포함할 수 있다.
인터페이스 로직(270)은 제조업체가 모바일 디바이스(100)에 대해 정의된 동작 조건들 하에서 최종 사용자의 체험을 제어 가능하게 구성 및 조정하게 할 수 있다. 메모리(112)가 플래시 메모리인 경우, 시동 로직(250), 관리 로직(260), 인터페이스 로직(270), 애플리케이션 저장소(280) 내의 애플리케이션 프로그램들 또는 내장된 파일 시스템(290) 내의 정보 중 하나 또는 그보다 많은 것이 편집, 대체되거나 아니면 수정될 수 있다. 일부 실시예들에서, 인터페이스 로직(270)은 모바일 디바이스(100)의 최종 사용자 또는 운영자가 시동 로직(250), 관리 로직(260), 애플리케이션 저장소(280) 내의 애플리케이션들 및 내장된 파일 시스템(290) 내의 정보를 탐색, 위치 결정, 수정 또는 대체하는 것을 허용할 수 있다. 운영자는 결과적인 인터페이스를 사용하여 모바일 디바이스(100)의 다음 시동시 구현될 변경들을 수행할 수 있다. 대안으로, 운영자는 결과적인 인터페이스를 사용하여 런타임 동안 구현되는 변경들을 수행할 수도 있다.
내장된 파일 시스템(290)은 계층적으로 배열된 DVFS 저장소(292)를 포함한다. 이와 관련하여, 파일 시스템(290)은 모바일 디바이스(100)에 의해 사용되는 다양한 파라미터들(298) 및 성능 스케일링 알고리즘들(297)의 구성 및 관리를 위한 정보의 저장을 위해 자신의 전체 파일 시스템 용량의 예비 섹션을 포함할 수 있다. 도 2에 도시된 바와 같이, DVFS 저장소(292)는 프로그램 저장소(296)를 포함하는 코어 저장소(294)를 포함하며, 프로그램 저장소(296)는 하나 또는 그보다 많은 DVFS 프로그램들을 포함한다. 각각의 프로그램은 각각의 성능 스케일링 알고리즘 그리고 특정 알고리즘과 연관된 한 세트의 파라미터들의 조합으로서 정의된다. DVFS 저장소(292)의 계층적 특성의 추가 예로서, 한 세트의 파일들 중 특정 멤버는 \startup\core0\algorithm\parameterset의 경로로 위치 결정 및 식별될 수 있다. 이 예에서, 프로그램은 파라미터 세트에 저장된 정보의 콘텐츠와 결합하여 알고리즘에 의해 식별된다. 예를 들어, "클래식(classic)"으로서 알려진 종래의 DVFS 알고리즘은, 샘플 레이트가 ㎒ 단위로 100의 값을 갖는 \startup\core0\classic\SampleRate; 증가시킬 샘플들이 정수인 2의 값을 갖는 \startup\core0\classic\SamplesToIncrease; 그리고 감소시킬 샘플들이 정수인 1의 값을 갖는 \startup\core0\classic\SamplesToDecrease와 같이, 샘플 레이트, 증가시킬 샘플들 및 감소시킬 샘플들과 같은 파라미터들에 따라 코어0(222)에 대한 성능 스케일링을 관리하도록 식별될 수 있다. 즉, 각각의 파일명들이 파라미터를 정의하고 파라미터의 값은 파일의 콘텐츠에 의해 식별된다. 알고리즘은 CPU 유휴 퍼센트의 주기적 샘플링에 의해 정의되며 낮은 임계치(유휴%) 및 높은 임계치(유휴%)에 따라 동작한다. 증가시킬 샘플들 임계치 비교기가 2개의 연이은 샘플들에 대해 성능이 증가되어야 한다고 지시한다면, DVFS 알고리즘은 미리 결정된 클록 레벨 조정치에 따라 성능을 증가시킨다. 반대로, 감소시킬 샘플들 임계치 비교기가 1개의 연이은 샘플에 대해 성능이 감소되어야 한다고 지시한다면, DVFS 알고리즘은 미리 결정된 클록 레벨(즉, 주파수) 조정치에 따라 성능을 감소시킨다. 위에서 설명한 바와 같이, 클록 주파수의 변경들과 함께 프로세서 또는 코어 동작 전압이 변경될 수 있다.
대안으로 또는 추가로, DVFS 저장소(292)는 탐색 경로가 자신의 애플리케이션(즉, 프로세서 코어, 알고리즘 및 파라미터 값)에 관해 가장 특정한 것에서부터 시작하여 애플리케이션에 관해 가장 덜(least) 특정한 것으로 진행하도록 배열될 수 있다. 예시적인 실시예에서는, "클래식" 성능 스케일링 알고리즘에 관련하여 /core0, /coreAll 및 /default 디렉터리들에서 파라미터들이 정의된다. 예를 들어, \core0\classic\SampleRate 경로는 코어0에서 동작하는 클래식 알고리즘에만 적용된다. 이러한 가장 특정한 애플리케이션이 다른 모든 것들보다 우선할 것이다. \coreAll\classic\SampleRate 경로는 클래식 알고리즘을 실행하는 임의의 프로세서 코어에 적용된다. 이 애플리케이션은 위의 예시적인 경로만큼 특정하지는 않지만, 클래식 알고리즘을 실행하는 임의의 프로세서 코어에 적용되는 \default\classic\SampleRate보다는 더 특정하다. 이러한 디폴트 애플리케이션은 가장 덜 특정하며 DVFS 저장소(292)에 다른 적당한 경로가 존재하지 않는 경우에만 사용된다. 발견된 첫 번째 파라미터가 사용되는 첫 번째 파라미터가 될 것이다. \default 위치는 항상 유효 파라미터 파일을 가질 것이다. 개별 코어들의 아키텍처, 하나 또는 그보다 많은 공유 캐시들의 아키텍처 및 코어들 사이로 명령들을 전달하는데 사용되는 메커니즘(들)뿐만 아니라, 모바일 디바이스(100)에 대해 원하는 사용 사례들 또한 메모리(112)에 저장된 다양한 성능 스케일링 알고리즘들(297)의 특성을 지시할 것으로 예상된다.
도 3은 도 1의 모바일 디바이스(100) 상에서 동작하는 성능 스케일링 알고리즘들을 관리 및 노출하기 위한 방법(300)의 실시예를 나타내는 흐름도이다. 모바일 디바이스(100) 내의 메모리(112)와 같은 비휘발성 메모리에 한 세트의 성능 스케일링 알고리즘들이 제공되는 블록(302)에서 방법(300)이 시작된다. 블록(304)에서, 한 세트의 성능 스케일링 알고리즘들의 각각의 멤버에 대해 한 세트의 파라미터들이 식별된다. 이후, 블록(306)에 지시된 바와 같이, 한 세트의 프로그램들을 정의하기 위해 한 세트의 파라미터들이 한 세트의 성능 스케일링 알고리즘들의 각각의 멤버들과 연관된다. 위에 지시된 바와 같이, 이는 특정 성능 스케일링 알고리즘에 적용될 수 있는 다양한 파라미터들을 조직화하기 위한 정해진 시퀀스를 설정함으로써 파일 시스템(290)과 같은 파일 시스템에서 이루어질 수 있다.
다음에, 블록(308)에 도시된 바와 같이, 식별된 프로세서 코어의 성능을 스케일링하기 위해 한 세트의 프로그램들 중 적어도 하나의 멤버가 식별된다. 블록(310)에서는, 한 세트의 프로그램들 중 블록(308)에서 식별된 멤버와 식별된 프로세서 코어가 서로 연관된다. 위에 지시된 바와 같이, 이는 알고리즘들과 파라미터들을 명시된 코어 식별자 하에서 계층적으로 저장하거나 아니면 배열함으로써 파일 시스템(290)과 같은 파일 시스템에서 이루어질 수 있다. 블록(312)에서, 한 세트의 프로그램들 및 코어 연관들을 노출하는 인터페이스가 생성된다. 선택적인 블록(314)에서는, 시동시 이용 가능한 프로세서 코어들에 대한 성능 스케일링을 구현하기 위한 실행을 위해 제 1 프로그램이 선택된다. 이는 각각의 프로세서 코어의 동작을 관리하기 위한 적절한 DVFS 프로그램(즉, 성능 스케일링 알고리즘과 한 세트의 파라미터들의 조합)을 식별하기 위한 시도로 DVFS 저장소(292)를 가로지르는 검색 루틴에 의해 이루어질 수 있다. 이후, 선택적인 블록(316)에 도시된 바와 같이, 제 1 프로그램은 정해진 이벤트, 동작 조건, 특정 하드웨어 자원들에 대한 요청, 애플리케이션(들) 등 중에서 하나 또는 그보다 많은 것의 식별시 런타임 동안 제 2 프로그램으로 대체될 수 있다.
도 4는 도 1의 모바일 디바이스 상에서 동작 가능한 컴퓨터 프로그램 물건의 실시예를 나타내는 흐름도이다. 일부 실시예들에서 컴퓨터 프로그램 물건은 시동 로직(250) 및 관리 로직(260)과 연관하여 위에서 설명한 기능을 포괄할 수 있다. 대안으로, 컴퓨터 프로그램 물건은 특정 모바일 디바이스(100)에 대한 DVFS 저장소(292)를 덧붙이기(populate)에 적합한 정보 및 인터페이스 로직(270)의 양상들을 더 포함할 수 있다.
도 4에 예시된 바와 같이, 컴퓨터 프로그램 물건의 예시적인 기능은 흐름도 또는 방법(400)의 형태로 예시된다. 프로그램을 정의하기 위해 모바일 디바이스(100) 상에서 동작 가능한 프로세서 코어의 성능을 스케일링하기에 적합한 한 세트의 프로그램들 중의 한 멤버가 선택되는 블록(402)에서 방법(400)이 시작된다. 블록(402)에 추가로 예시된 바와 같이, 성능 스케일링 알고리즘과 그 알고리즘에 적용되는 파라미터들의 각각의 세트의 각각의 조합으로 한 세트의 프로그램들이 정의된다. 블록(404)에서는, 선택 프로그램이 모바일 디바이스(100) 상의 프로세서 코어에 로딩되거나 아니면 전달된다. 블록(404)에 지시된 바와 같이, 이는 시동 시퀀스에 따라 이루어진다. 해당 기술분야에서 통상의 지식을 가진 자는 시동 시퀀스가 펌웨어, 소프트웨어 또는 심지어 운영 시스템 자체에서 인에이블될 수 있다고 이해할 것이다. 일단 선택 프로그램이 각각의 프로세서 코어에 전달되면, 요구될 수 있는 대로(as may be desired) 선택 프로그램이 실행되어 프로세서 코어 또는 모바일 디바이스(100) 상에서 동작하는 다른 프로세서 코어들의 성능을 스케일링할 수 있다.
이후, 블록(406)에 지시된 바와 같이, 한 세트의 프로그램들 중의 대체 프로그램이 선택 프로그램을 대체해야 함을 나타내는 상태를 식별하기 위해 모바일 디바이스(100)의 사용이 모니터링된다. 블록(408)에서, 런타임 동안 선택 프로그램이 대체 프로그램으로 대체된다. 위에 지시된 바와 같이, 선택 프로그램을 대체 프로그램으로 대체하는 것은 대체 프로그램이 로딩되어 실행되기 이전에, 선택 프로그램의 세심히 관리되는(managed) 종료가 동반될 수 있다.
모바일 디바이스(100)의 예시적인 실시예 그리고 그 내부에 내장된 파일 시스템이 도 1 - 도 4에 예시된 실시예들에 관련하여 다수의 성능 스케일링 알고리즘들의 애플리케이션을 관리 및 노출하기 위해 어떻게 사용될 수 있는지를 일반적으로 설명하였고, 이제 모바일 디바이스 상에서 다수의 성능 스케일링 알고리즘들 및 동작 파라미터들의 구성을 최적화하기 위한 오프라인 프로세스를 설명하기 위한 추가 실시예들을 포함하는 도 5 - 도 8이 참조된다.
이와 관련하여, 도 5는 도 1의 모바일 디바이스에 대한 성능 메트릭의 전개를 나타내는 도표이다. 가로축은 매초 모바일 디바이스(100)에 의해 처리되는 비디오 정보의 프레임들의 수를 나타낸다. 이와 관련하여, 가로축은 모바일 디바이스(100)의 실제 성능, 즉 비디오 정보의 랜더링된 프레임들을 초 단위로 나타낸다. 세로축은 정규화된 성능을 나타낸다. 따라서 그래프(500)는 모바일 디바이스(100) 성능으로부터의 성능 메트릭의 환산 또는 전개를 나타낸다. 자취(trace)(510)는 초당 약 26개 프레임들의 프레임 레이트 또는 그 미만은 용인될 수 없다고 여겨지며 0의 정규화된 성능 득점을 받음을 보여준다. 반대로, 초당 약 26개 프레임들 내지 초당 공칭 30개 프레임들 사이의 프레임 레이트는 초당 30개 프레임의 공칭 프레임 레이트에 용인될 수 있어, 1의 정규화된 성능 득점을 받는다. 선택 DVFS 프로그램(예를 들어, 알고리즘, 하나 또는 그보다 많은 파라미터들의 특정 값 또는 값들)과 연관된 임의의 수의 인자들은 이러한 바람직하지 않은 성능 레벨을 생성할 가능성을 가질 수 있다. 더욱이, 자취(510)의 형상은 허용할 수 있는 레벨의 성능을 여전히 달성 및/또는 유지하면서 어떠한 전력 절약을 달성하기 위해 모바일 디바이스(100) 상의 프로세서 코어들 중 하나 또는 그보다 많은 프로세서 코어 및/또는 전용 비디오 코덱에 적용될 수 있는 동작 전압들 및 주파수들의 어떠한 범위가 존재함을 나타낸다.
도 5의 도표는 비디오 재생 특징에 대한 하나의 성능 메트릭을 나타낸다. 모바일 디바이스(100)는 수많은 다른 애플리케이션들을 실행할 수 있으므로, 파라미터들이 조정되고 성능 스케일링 알고리즘들이 하나 또는 그보다 많은 프로세서 코어들에 적용될 때 모바일 디바이스(100) 상의 다른 특징들 또는 애플리케이션들의 상대적 성능을 비교 및 분석하기 위해 임의의 수의 추가 성능 메트릭들이 전개될 수 있다.
도 6a 및 도 6b는 사용 사례들의 실시예들을 나타내는 개략도들을 포함한다. 첫 번째 예시적인 사용 사례는 도 6a의 표(600)에 예시된다. 사용 사례는 모바일 디바이스(100) 상에서 수행될 수 있는 한 세트의 작업들을 포함한다. 작업들은 웹 브라우징(즉, 모바일 디바이스(100)가 인터넷에 연결된 송신기의 통신 범위 내에 있는 동안 브라우저 애플리케이션을 실행하는 것), 오디오/비디오 재생, 오디오 재생, 이메일 애플리케이션의 실행, 및 하나 또는 그보다 많은 다른 애플리케이션들의 실행을 포함한다. 사용 사례는 모바일 디바이스(100)의 예상 사용량으로 추가 정의된다. 예상 사용량은 모바일 디바이스(100)가 배터리로부터 전원이 인가되어 동작하고 있는 총 시간의 퍼센트로 표시된다. 예상 사용량은 모바일 디바이스의 제조업체 또는 판매자에 의해 설정될 수 있다.
두 번째 예시적인 사용 사례는 도 6b의 표(650)에 예시된다. 이 두 번째 사용 사례는 첫 번째 사용 사례의 이메일 애플리케이션 대신 단문 메시지 서비스(SMS: short messaging service) 애플리케이션을 포함한다. 모바일 디바이스(100) 상에서 수행될 기재된 작업들의 변화 외에도, 두 번째 사용 사례는 디바이스의 최종 사용자가 연관된 작업을 수행하고 있을 수도 있는 별개의 세트의 예상 퍼센트들을 포함한다.
따라서 모바일 디바이스(100)에 관한 성능 스케일링 알고리즘들과 파라미터들의 이용 가능한 조합들 중 하나가 예상 사용 사례에 대한 전력 절약에 더 효과적인지 여부를 확인하는 것은 사소한 문제가 아니다. 메리트의 수치 또는 메리트 값은 모바일 디바이스(100) 상에서 수행될 작업들 각각에 대하여 가능한 파라미터 조합들의 M개의 세트들에 대한 N개의 이용 가능한 성능 스케일링 알고리즘들의 적용을 비교하기 위한 양적 측정치를 제공한다. 메리트 값은 정규화된 성능 메트릭과 대응하는 전력 메트릭의 곱이다. 위에 지시된 바와 같이, 각각의 작업에 대해 하나 또는 그보다 많은 성능 메트릭들이 식별될 수 있다.
전력 메트릭은 절약되는 전력 값 또는 사용되는 총 전력을 포함할 수 있다. 모바일 디바이스(100)에 의해 소모되는 총 전력은 정적 그리고 동적 컴포넌트 모두를 갖기 때문에 사용되는 총 전력은 다양한 성능 스케일링 알고리즘들 및 파라미터들의 상대적 효과의 더 양호한 표시자일 수 있다. 정규화된 성능 메트릭과 전력 메트릭의 함수, 즉 이러한 값들의 곱은 예시적인 표(610)(도 6a)와 예시적인 표(660)(도 6b)에 도시된다. 표(610)와 표(660)에 표시된 값들은 0 내지 100의 스케일로 스케일링 또는 정규화되는데, 성능 스케일링 알고리즘과 파라미터 세트의 주어진 조합에 대해 0의 스케일링된 득점 또는 메리트 값은 가장 바람직하지 않은 조합을 나타내고 100의 메리트 값은 최상의 가능한 성능 및 전력 절약을 나타낸다. 표(610)와 표(660)가 동일한 성능 스케일링 알고리즘들(즉, 알고리즘 A, 알고리즘 B 및 알고리즘 N)을 갖는다 하더라도, 적용되는 파라미터들이 사용 사례마다 다르기 때문에 각각의 사용 사례들에서 작업들 각각에 대한 대응하는 메리트 값들은 서로 다르다.
예시적인 표(610)에서의 정보와 예시적인 표(660)에서의 정보는 특정 성능 스케일링 알고리즘이 사용 사례 전체에 걸쳐 더 양호하게 수행할 것인지 여부를 여전히 쉽게 나타내지 못한다. 그러나 다음 식으로부터 시스템 또는 복합 메리트 값(CMV: composite merit value)이 결정될 수 있으며:
Figure 112013032487428-pct00001
식(1)
여기서 n은 사용 사례이고, w는 가중 인자이며, 가장 기본적인 실시예에서 이 가중 인자는 모바일 디바이스(100)가 하나 또는 그보다 많은 작업들을 수행하고 있을 것으로 예상되는 시간 퍼센트일 수 있다. 대안적인 실시예들에서, 가중 인자는 모바일 디바이스(100)에 대한 성능 스케일링 알고리즘과 파라미터 세트의 최상의 조합 결정시 임의의 하나의 사용 사례의 상대적 중요도를 나타내는 값일 수 있다. 어떤 경우들에, 특정 모바일 디바이스(100)는 다수의 작업들을 동시에 수행할 수 있다는 점에 주목한다. 따라서 사용 사례마다, 모바일 디바이스(100)가 특정 알고리즘과 한 세트의 파라미터들로 정의된 조합에 따라, 지정된 작업 또는 작업들을 수행하고 있을 때 성능 메트릭과 전력 메트릭의 곱으로서 메리트 값(MV)이 계산될 수 있다. 뒤에 설명되는 바와 같이, 특정 조합이 다른 조합들보다 더 바람직한지 여부를 결정하기 위해, 테스트 시스템이 관심 대상인 임의의 수의 성능 스케일링 알고리즘들과 파라미터 세트들을 통해 단계적으로 진행할 수 있다.
모바일 디바이스(100)가 디바이스의 고객에게 전달된 후 유사한 데이터 수집 프로시저가 적용될 수 있다. 이는 튜닝 및 성능 스케일링 알고리즘 선택이 도 6a 및 도 6b에 도시된 바와 같이, 그러나 모바일 디바이스(100)에 대한 예상 사용량보다는 실제 고객 사용량에 대해 결정되게 할 것이다. 또한, 일단 어떤 성능 스케일링 알고리즘과 파라미터 구성이 특정 사용 사례에 대해 가장 많은 전력이 절약되게 하는 결과를 초래하는지가 결정되면, 모바일 디바이스(100)는 사용 사례를 검출하고 그 사용 사례가 활동중일 때 성능 스케일링 알고리즘과 파라미터 세트를 적용하도록 구성될 수 있다.
도 7은 테스트 환경(700)의 실시예를 나타내는 개략도이다. 테스트 환경(700)은 테스트 중인 모바일 디바이스(즉, 모바일 디바이스(200))와 통신 링크(740)를 통해 통신 가능하게 연결된 테스트 시스템(710)을 포함한다. 통신 링크(740)는 유선 또는 무선 링크일 수 있다. 테스트 시스템(710)은 예시된 실시예에서, 로컬 버스(712)에 의해 서로 연결되는 프로세서(715), 메모리(720) 및 입력/출력 제어기(730)를 포함한다. 로컬 버스(712)는 통신들을 가능하게 하기 위한, 제어기들, 버퍼들(캐시들), 드라이버들, 리피터들 및 수신기들과 같은, 단순화를 위해 생략된 추가 엘리먼트들을 가질 수 있다. 또한, 로컬 버스(712)는 앞서 언급한 컴포넌트들 사이의 적절한 통신들을 가능하게 하기 위한 어드레스, 제어 및/또는 데이터 접속들을 포함할 수 있다.
프로세서(715)는 소프트웨어(즉, 실행 가능 명령들의 세트들 또는 프로그램들), 특히 프로세서(715)에 의해 액세스 가능한 메모리, 예컨대 메모리(720)에 저장된 소프트웨어를 실행하기 위한 하드웨어 디바이스이다. 프로세서(715)는 임의의 주문 제작된 또는 상업적으로 이용 가능한 프로세서, 중앙 처리 유닛(CPU: central processing unit), 테스트 시스템(710)과 연관된 여러 프로세서들 중의 보조 프로세서, (마이크로칩이나 칩셋 형태의) 반도체 기반 마이크로프로세서, 또는 일반적으로 명령들을 실행하기 위한 임의의 디바이스일 수 있다.
입력/출력(I/O) 제어기(730)는 테스트 시스템(710)에 의해 수신되거나 테스트 시스템(710)으로부터 전달되는 모든 정보를 관리한다. I/O 제어기(730)는 예를 들어, 키보드, 마우스, 스캐너, 마이크로폰 및/또는 터치 감응형 디스플레이 등과 같은, 그러나 이에 한정되는 것은 아닌 디바이스들을 포함하는 임의의 수의 I/O 디바이스(들) 사이의 정보 전달들을 관리한다. I/O 디바이스(들)는 또한 모뎀, 무선 주파수(RF)나 다른 트랜시버, 이더넷 인터페이스, 범용 직렬 버스 인터페이스 등 중에서 하나 또는 그보다 많은 것을 포함한다.
메모리(720)는 휘발성 메모리 엘리먼트들(예를 들어, 동적 랜덤 액세스 메모리(DRAM: dynamic random-access memory), 정적 랜덤 액세스 메모리(SRAM: static random-access memory), 동기식 동적 랜덤 액세스 메모리(SDRAM: synchronous dynamic random-access memory) 등과 같은 랜덤 액세스 메모리(RAM))과 비휘발성 메모리 엘리먼트들(예를 들어, 판독 전용 메모리(ROM), 하드 드라이브, 테이프, 콤팩트 디스크 판독 전용 메모리(CD-ROM) 등)의 임의의 하나 또는 이들의 조합을 포함할 수 있다. 더욱이, 메모리(720)는 전자, 자기, 광, 및/또는 다른 타입들의 저장 매체를 통합할 수 있다. 메모리(720)는 다양한 컴포넌트들이 서로 간에 멀리 위치하고 있지만, 프로세서(715)에 의해 액세스 가능한 분산형 아키텍처를 가질 수 있다는 점에 주목한다.
메모리(720) 내의 소프트웨어는 하나 또는 그보다 많은 개별 프로그램들이나 로직을 포함할 수 있으며, 이들 각각은 정의된 다양한 기능들을 구현하기 위한 실행 가능 명령들의 순차적 리스트를 포함한다. 도 7에 예시된 예시적인 실시예에서, 메모리(720) 내의 소프트웨어는 테스트 로직(722), 제어 로직(724), 메리트 로직(726) 및 결정 로직(728)을 포함한다. 대안적인 실시예들에서, 테스트 로직(722), 제어 로직(724), 메리트 로직(726) 및 결정 로직(728) 중 하나 또는 그보다 많은 로직은 테스트 시스템(710)에서 멀리 떨어져 있지만 테스트 시스템(710)에 액세스 가능한 하나 또는 그보다 많은 분산형 컴퓨팅 디바이스들을 통해 구현될 수 있다.
도 7에 도시된 바와 같이, 테스트 시스템(710)에 의해 사용되는 로직이 소프트웨어로 구현되는 경우, 테스트 로직(722), 제어 로직(724), 메리트 로직(726) 및 결정 로직(728) 중 하나 또는 그보다 많은 로직은 임의의 컴퓨터 관련 시스템 또는 방법과 관련하여 또는 이들에 의한 사용을 위해 임의의 컴퓨터 판독 가능 매체 상에 저장될 수 있다. 또한, 프로그램 저장소(721)에 저장된 알고리즘들(723a) 및 파라미터들(723b)과 같은 성능 스케일링 프로그램들을 식별하는 정보, 사용 사례 저장소(725)에 저장된 사용 사례들, 및 결과들 저장소(727)에 저장된 메리트 값들이나 다른 결과들이 또한 컴퓨터 판독 가능 매체 상에 저장될 수 있다.
테스트 로직(722)은 모바일 디바이스(200)로부터의 양적 결과를 결정하기 위한 한 세트의 조건들을 준비하기 위한 다양한 단계들 및/또는 작업들을 관리하기 위한 실행 가능 명령들을 포함한다. 테스트 로직(722)은 제어 로직(724)과 함께 작동하여 모바일 디바이스(200)를 구성한다. 제어 로직(724)은 성능 스케일링 알고리즘과 한 세트의 파라미터들의 정해진 조합에 따라 기능하도록 모바일 디바이스를 구성하기 위한 명령(command)들을 I/O 제어기(730)와 통신 링크(740)를 통해 전송한다. 또한, 제어 로직(724)은 지정된 작업 또는 작업들을 사용 사례에 따라 수행하도록 모바일 디바이스(200)를 구성하기 위한 명령들을 이러한 동일한 엘리먼트들을 통해 전송한다. 테스트 로직(722)은 임의의 수의 원하는 사용 사례들, 알고리즘들 및 파라미터들을 통해 단계적으로 진행하도록 구성된다. 테스트 사례마다, 테스트 시스템(710)은 모바일 디바이스(200)로부터 전력 메트릭과 성능 메트릭을 수신한다. 메리트 로직(726)은 각각의 테스트 사례에 대해 전력 및 성능 메트릭들을 수신하여 메리트 값 또는 메리트의 수치를 계산한다. 결국, 테스트 로직(722)은 메리트 로직(726)으로부터의 메리트 값을 결과들 저장소(727)에 전송한다. 결과들 저장소(727)는 도 6a와 도 6b에 도시된 예시적인 표들과 같은 표를 포함할 수 있다. 원하는 모든 테스트 사례들이 완료된 후, 테스트 로직(722)은 사용 사례마다 성능 스케일링 알고리즘과 파라미터 세트의 최상의 조합을 식별하도록 결정 로직(728)에 지시한다. 결정 로직(728)은 도 6a에 도시된 예시적인 표와 같은 표에 하나 또는 그보다 많은 표시자들을 추가하여, 모바일 디바이스(200)에 임의의 수의 포맷들로 전달될 수 있는 성능 스케일링 스케줄을 생성할 수 있다.
도 8은 도 1의 예시적인 모바일 디바이스(100)와 같은 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법(800)의 실시예를 나타내는 흐름도이다. 모바일 디바이스(100) 상에서의 실행에 적합한 한 세트의 성능 스케일링 알고리즘들이 정의되는 블록(802)에서 방법(800)이 시작된다. 블록(804)에서, 한 세트의 성능 스케일링 알고리즘들의 각각의 멤버에 대한 한 세트의 파라미터들이 식별된다. 이후, 블록(806)에 도시된 바와 같이, 한 세트의 프로그램들을 정의하기 위해 한 세트의 파라미터들이 한 세트의 알고리즘들의 각각의 멤버들과 연관된다. 블록(808)에 지시된 바와 같이, 모바일 디바이스(100) 상에서 수행되도록 지정된 한 세트의 작업들에 응답하여 사용 사례가 식별된다. 블록(810)에서, 메리트 값을 생성하기 위해 모바일 디바이스가 사용 사례에 따라 동작하고 있을 때 한 세트의 프로그램들이 반복적으로 모바일 디바이스에 적용된다. 블록(810)에 추가로 지시된 바와 같이, 메리트 값은 현재 사용 사례 및 프로그램 하에서 모바일 디바이스(100)의 동작으로부터 결정된 성능 메트릭과 전력 메트릭의 함수이다. 블록(812)에서, 제 1 사용 사례에서 식별된 작업들에 대해 복합 메리트 값이 계산된다. 블록(814)에서, 식별된 사용 사례에 대해 모바일 디바이스 내의 이용 가능한 프로세서 코어들에 대해 실행하기에 가장 바람직한 것으로서 제 1 또는 선택 프로그램이 식별된다. 이후, 블록(816)에 지시된 바와 같이, 테스트 시스템(710)은 성능 스케일링 스케줄을 생성하기 위해 추가 사용 사례들에 대해 한 세트의 프로그램들의 적용 및 최대 메리트 값들의 식별을 반복한다. 성능 스케일링 스케줄이 일단 결정되면, 성능 스케일링 스케줄은 식별된 사용 사례들에 대해 요구될 수 있는 대로 모바일 디바이스(100) 상에서 동작하는 각각의 프로세서 코어들에 선택 프로그램을 적용하도록 표로서 전달될 수 있거나 파일 시스템(290)과 같은 파일 시스템에 내장될 수 있다.
본 발명이 설명된 바와 같이 기능하도록 하기 위해, 본 명세서에서 설명된 프로세스들 또는 프로세스 흐름들의 특정 단계들이 당연히 다른 것들에 우선한다. 그러나 설명된 단계들의 순서나 시퀀스가 본 발명의 기능을 변경하지 않는다면, 본 발명은 이러한 순서로 한정되지는 않는다. 즉, 일부 단계들은 본 발명의 범위 및 사상을 벗어나지 않으면서 다른 단계들 이전, 이후 또는 이들과 동시에(실질적으로 동시에) 수행될 수 있다고 인식된다. 어떤 경우들에, 본 발명을 벗어나지 않으면서 특정 단계들이 생략되거나 수행되지 않을 수도 있다. 또한, "이후," "그 다음," "다음에" 등과 같은 단어들은 단계들의 순서를 한정하는 것으로 의도되는 것은 아니다. 이러한 단어들은 단순히 예시적인 발명의 설명을 통해 독자를 지도하는데 사용된다.
프로그래밍 분야에서 통상의 지식을 가진 자는 개시된 프로세스들을 과도한 어려움이나 실험 없이 구현하도록 컴퓨터 코드를 작성하거나 적절한 하드웨어를 식별할 수 있다. 따라서 본 발명을 어떻게 실시 및 사용하는지에 관한 충분한 이해를 위해 특정 세트의 실행 가능 명령들 또는 상세한 하드웨어 디바이스들의 개시가 필수적으로 고려되는 것은 아니다. 청구되는 모바일 디바이스(100) 및 프로세스들에 대한 발명의 기능은 상기 설명에서 그리고 다양한 프로세스 흐름들을 나타낼 수 있는 도면들과 함께 더 상세히 설명된다.
하나 또는 그보다 많은 예시적인 양상들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 기능들은 컴퓨터 판독 가능 매체 상에 하나 또는 그보다 많은 명령들 또는 코드로서 저장되거나 이를 통해 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체와 컴퓨터 저장 매체를 모두 포함한다. 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들이나 데이터 구조들의 형태로 원하는 프로그램 코드를 전달하거나 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있다.
또한, 임의의 접속이 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선("DSL(digital subscriber line)"), 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 마이크로파와 같은 무선 기술들이 매체의 정의에 포함된다.
본 명세서에서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크("CD(compact disc)"), 레이저 디스크(laser disc), 광 디스크(optical disc), 디지털 다기능 디스크("DVD(digital versatile disc)"), 플로피 디스크(floppy disk) 및 블루레이 디스크(blu-ray disc)를 포함하며, 여기서 디스크(disk)들은 통상적으로 데이터를 자기적으로 재생하는 한편, 디스크(disc)들은 데이터를 레이저들에 의해 광학적으로 재생한다. 상기의 조합들 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
선택된 양상들이 예시되고 상세히 설명되었지만, 다음의 청구항들에 의해 정의된 바와 같이, 본 발명의 범위를 벗어나지 않으면서 본 발명에 다양한 치환들 및 변형들이 이루어질 수 있다고 이해될 것이다.

Claims (20)

  1. 적어도 하나의 프로세서 코어를 가진 적어도 하나의 프로세서를 갖는 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법으로서,
    상기 모바일 디바이스 상에서의 실행을 위한 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들을 정의하는 단계;
    상기 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들의 개개의 멤버들 각각에 대한 한 세트의 파라미터들을 식별하는 단계;
    한 세트의 프로그램들을 정의하기 위해 상기 한 세트의 파라미터들을 상기 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들의 개개의 멤버와 연관시키는 단계;
    상기 모바일 디바이스 상에서 수행될 한 세트의 작업들을 포함하는 제 1 사용 사례(use case)를 식별하는 단계 ― 상기 제 1 사용 사례는 상기 모바일 디바이스의 총 사용 시간의 퍼센트로서 정의됨 ―;
    상기 제 1 사용 사례에서 상기 프로세서의 성능 메트릭 및 상기 제 1 사용 사례에서 상기 모바일 디바이스에 의한 전력 사용량을 나타내는 전력 메트릭의 함수로써 메리트(merit) 값을 생성하기 위해 상기 한 세트의 프로그램들을 상기 제 1 사용 사례에 적용하는 단계; 및
    상기 제 1 사용 사례에 대한 최대 메리트 값을 식별하는 단계를 포함하며,
    상기 최대 메리트 값은 상기 제 1 사용 사례에서의 상기 프로세서의 처리 속도 및 상기 모바일 디바이스에 의한 전력 사용량의 조합을 나타내고, 상기 최대 메리트 값이 나타내는 조합은 상기 제 1 사용 사례에서의 처리 속도 및 전력 사용량의 다른 조합들보다 큰,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  2. 제 1 항에 있어서,
    상기 최대 메리트 값의 함수로써 상기 사용 사례에 대해 실행할 제 1 프로그램을 상기 한 세트의 프로그램들 중에서 선택하는 단계를 더 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  3. 제 1 항에 있어서,
    상기 제 1 사용 사례와는 다른 다음(subsequent) 사용 사례를 식별하는 단계; 및
    각각의 사용 사례들에 대해 상기 한 세트의 프로그램들을 적용하는 단계 및 상기 최대 메리트 값을 식별하는 단계를 반복하는 단계를 더 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  4. 제 3 항에 있어서,
    성능 스케일링 스케줄을 생성하기 위해 각각의 사용 사례에 대해 상기 최대 메리트 값을 초래하는 상기 한 세트의 프로그램들의 멤버의 표시를 저장하는 단계; 및
    상기 모바일 디바이스 상에 상기 성능 스케일링 스케줄을 저장하는 단계를 더 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  5. 제 4 항에 있어서,
    특정 사용 사례가 상기 모바일 디바이스 상에서 언제 활동중인지를 검출하는 단계; 및
    상기 모바일 디바이스 상에서 성능 스케일링 알고리즘과 한 세트의 파라미터들의 조합을 선택적으로 적용하는 단계를 더 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  6. 제 1 항에 있어서,
    상기 모바일 디바이스는,
    셀룰러 전화, 호출기, 개인용 디지털 보조기기, 리더(reader), 위성 전화, 네비게이션 디바이스, 또는 무선 접속성을 가진 컴퓨터 중 하나를 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  7. 모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템으로서,
    비휘발성(non-volatile) 메모리에 통신 가능하게 연결된 프로세서를 포함하며,
    상기 비휘발성 메모리는,
    프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘과 한 세트의 파라미터들의 각각의 조합으로 정의된 한 세트의 프로그램들을 포함하는 프로그램 저장소;
    상기 모바일 디바이스 상에서 수행될 한 세트의 작업들을 포함하는 한 세트의 사용 사례들을 포함하는 사용 사례 저장소 ― 각각의 사용 사례는 상기 모바일 디바이스의 총 사용 시간의 퍼센트로서 정의됨 ―; 및
    상기 한 세트의 사용 사례들의 멤버들 각각에 대해 상기 모바일 디바이스 상에서 상기 한 세트의 프로그램들의 각각의 멤버를 적용한 이후에 생성되는 각각의 메리트 값을 포함하는 결과들 저장소를 포함하며,
    각각의 메리트 값들은 대응하는 사용 사례들에서 상기 프로세서의 처리 속도와 상기 모바일 디바이스에 의한 전력 사용량의 조합들을 나타내는,
    모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템.
  8. 제 7 항에 있어서,
    상기 사용 사례 저장소에 저장된 상기 한 세트의 사용 사례들은 상기 모바일 디바이스의 판매자(seller)에 의해 정의되는,
    모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템.
  9. 제 7 항에 있어서,
    상기 메리트 값은 처리 속도 메트릭과 전력 메트릭의 함수인,
    모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템.
  10. 제 7 항에 있어서,
    상기 사용 사례 저장소 내의 상기 한 세트의 사용 사례들에 대해 상기 한 세트의 프로그램들의 선택 멤버를 연관시키도록 구성된 로직을 더 포함하는,
    모바일 디바이스 상에서의 실행을 위해 지정된 한 세트의 성능 스케일링 알고리즘들에 대한 최적 구성을 식별하기 위한 시스템.
  11. 삭제
  12. 삭제
  13. 삭제
  14. 적어도 하나의 프로세서 코어를 가진 적어도 하나의 프로세서를 갖는 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법을 구현하도록 실행되게 적응된 컴퓨터 판독 가능 프로그램 코드를 포함하는 컴퓨터 판독 가능 매체로서,
    상기 모바일 디바이스 상에서의 실행을 위한 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들을 정의하도록 구성된 로직;
    상기 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들의 개개의 멤버들 각각에 대한 한 세트의 파라미터들을 식별하도록 구성된 로직;
    프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘의 선택 조합과 선택 세트의 파라미터들을 사용하여 동작하도록 테스트 중인 모바일 디바이스를 조정하도록 구성된 로직 ― 상기 로직은 상기 테스트 중인 모바일 디바이스를 상기 모바일 디바이스 상에서 수행될 한 세트의 작업들을 포함하는 사용 사례에 따라 추가로 조정하도록 구성되며, 각각의 사용 사례는 상기 모바일 디바이스의 총 사용 시간의 퍼센트로서 정의됨 ―;
    상기 사용 사례에서 상기 프로세서의 성능 메트릭 및 상기 테스트 중인 모바일 디바이스에 의한 전력 사용량을 나타내는 전력 메트릭을 결정하도록 구성된 로직;
    상기 성능 메트릭과 상기 전력 메트릭의 함수로써 메리트 값을 생성하도록 구성된 로직;
    성능 스케일링 스케줄에 대한 포인트를 생성하기 위해 최대 메리트 값의 생성을 초래하는, 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘의 각각의 조합과 파라미터들의 각각의 세트를 식별하고 연관시키도록 구성된 로직 ― 상기 최대 메리트 값은 상기 사용 사례에서의 상기 프로세서의 처리 속도 및 상기 모바일 디바이스에 의한 전력 사용량의 조합을 나타내고, 상기 최대 메리트 값이 나타내는 조합은 상기 사용 사례에서의 처리 속도 및 전력 사용량의 다른 조합들보다 큼 ―; 및
    상기 성능 스케일링 스케줄을 상기 모바일 디바이스에 전달하도록 구성된 로직을 포함하는,
    컴퓨터 판독 가능 매체.
  15. 제 14 항에 있어서,
    각각의 성능 스케일링 알고리즘, 파라미터들의 각각의 세트 및 각각의 사용 사례의 조합에 의해 정의된 추가 테스트 사례들이 언제 존재하는지를 결정하도록 구성된 로직을 더 포함하며,
    상기 로직은 상기 테스트 중인 모바일 디바이스를 반복적으로 조정하고, 상기 성능 메트릭 및 상기 전력 메트릭을 결정하고, 각각의 메리트 값을 생성하도록 추가로 구성되는,
    컴퓨터 판독 가능 매체.
  16. 제 14 항에 있어서,
    상기 성능 스케일링 알고리즘은 다수의 프로세서 코어들의 실행을 제어하기 위한 로드 밸런싱 알고리즘을 포함하는,
    컴퓨터 판독 가능 매체.
  17. 제 14 항에 있어서,
    사용 사례들의 세트는 상기 모바일 디바이스 상에서 수행될 예상 작업들을 시간의 퍼센트로서 식별하는,
    컴퓨터 판독 가능 매체.
  18. 제 14 항에 있어서,
    상기 메리트 값은 상기 성능 메트릭과 상기 전력 메트릭의 곱을 포함하는,
    컴퓨터 판독 가능 매체.
  19. 적어도 하나의 프로세서 코어를 가진 적어도 하나의 프로세서를 갖는 모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법으로서,
    상기 모바일 디바이스 상에서의 실행을 위한 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들을 저장하는 단계;
    한 세트의 프로그램들을 정의하기 위해 상기 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들의 개개의 멤버들 각각에 대해 한 세트의 파라미터들을 상기 한 세트의 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘들의 개개의 멤버와 연관시키는 단계;
    상기 모바일 디바이스 상에서 수행될 작업들을 포함하는 한 세트의 사용 사례들을 식별하는 단계 ― 각각의 사용 사례는 상기 모바일 디바이스의 총 사용 시간의 퍼센트로서 정의됨 ―;
    성능 스케일링 스케줄을 생성하기 위해 각각의 사용 사례에 대해 최대 메리트 값을 초래하는 상기 한 세트의 프로그램들의 멤버의 표시를 저장하는 단계 ― 상기 최대 메리트 값은 상기 사용 사례에서의 상기 프로세서의 처리 속도 및 상기 모바일 디바이스에 의한 전력 사용량의 조합을 나타내고, 상기 최대 메리트 값이 나타내는 조합은 상기 사용 사례에서의 처리 속도 및 전력 사용량의 다른 조합들보다 큼 ―;
    상기 모바일 디바이스 상에 상기 성능 스케일링 스케줄을 저장하는 단계;
    특정 사용 사례가 상기 모바일 디바이스 상에서 언제 활동중인지를 검출하는 단계; 및
    상기 모바일 디바이스 상에서 프로세서 동작 전압 및 클록 주파수 스케일링 알고리즘의 조합과 상기 한 세트의 파라미터들을 선택적으로 적용하는 단계를 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
  20. 제 19 항에 있어서,
    상기 모바일 디바이스는,
    셀룰러 전화, 호출기, 개인용 디지털 보조기기, 리더, 위성 전화, 네비게이션 디바이스, 또는 컴퓨터 중 하나를 포함하는,
    모바일 디바이스 상에서 동작하는 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 방법.
KR1020137009521A 2010-09-16 2011-07-08 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들 KR101448974B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/883,449 US8320898B2 (en) 2010-09-16 2010-09-16 Systems and methods for optimizing the configuration of a set of performance scaling algorithms
US12/883,449 2010-09-16
PCT/US2011/043292 WO2012036780A1 (en) 2010-09-16 2011-07-08 Systems and methods for optimizing the configuration of a set of performance scaling algorithms

Publications (2)

Publication Number Publication Date
KR20130044373A KR20130044373A (ko) 2013-05-02
KR101448974B1 true KR101448974B1 (ko) 2014-10-13

Family

ID=44629304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137009521A KR101448974B1 (ko) 2010-09-16 2011-07-08 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들

Country Status (6)

Country Link
US (1) US8320898B2 (ko)
EP (1) EP2616898A1 (ko)
JP (1) JP5568689B2 (ko)
KR (1) KR101448974B1 (ko)
CN (1) CN103154854A (ko)
WO (1) WO2012036780A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10491650B1 (en) * 2012-02-06 2019-11-26 Amazon Technologies, Inc. Monitoring performance of computing devices
KR20140016696A (ko) * 2012-07-31 2014-02-10 삼성전자주식회사 시스템 성능 평가장치 및 방법
US9465659B2 (en) 2012-12-19 2016-10-11 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Dynamic task completion scaling of system resources for a battery operated device
US9285858B2 (en) 2013-01-29 2016-03-15 Blackberry Limited Methods for monitoring and adjusting performance of a mobile computing device
KR102060703B1 (ko) * 2013-03-11 2020-02-11 삼성전자주식회사 모바일 시스템의 최적화 방법
US9348401B2 (en) * 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9830626B1 (en) * 2014-02-28 2017-11-28 EMC IP Holding Company LLC Pre-calculated performance simulation
KR102599653B1 (ko) 2015-11-20 2023-11-08 삼성전자주식회사 냉각 알고리즘을 수행하는 집적 회로와 이를 포함하는 모바일 장치
CN114391128A (zh) * 2019-09-27 2022-04-22 阿里云计算有限公司 功率管理方法和设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139302A1 (en) 2002-11-12 2004-07-15 Arm Limited Performance level selection in a data processing system
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111179B1 (en) * 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US7321942B2 (en) * 2002-11-12 2008-01-22 Arm Limited Performance counter for adding variable work increment value that is dependent upon clock frequency
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7050798B2 (en) 2002-12-16 2006-05-23 Microsoft Corporation Input device with user-balanced performance and power consumption
US7539994B2 (en) * 2003-01-03 2009-05-26 Intel Corporation Dynamic performance and resource management in a processing system
US6711447B1 (en) 2003-01-22 2004-03-23 Intel Corporation Modulating CPU frequency and voltage in a multi-core CPU architecture
US7770034B2 (en) * 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
TW200805047A (en) 2005-12-23 2008-01-16 Koninkl Philips Electronics Nv Performance analysis based system level power management
US20080162918A1 (en) * 2007-01-02 2008-07-03 Nokia Corporation Hide boot
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
JP4353990B2 (ja) * 2007-05-18 2009-10-28 株式会社半導体理工学研究センター マルチプロセッサ制御装置
CN201319516Y (zh) 2008-11-26 2009-09-30 广州西格美信电子科技有限公司 用于移动设备的自适应外挂电池
US20100162256A1 (en) 2008-12-18 2010-06-24 Alexander Branover Optimization of application power consumption and performance in an integrated system on a chip

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139302A1 (en) 2002-11-12 2004-07-15 Arm Limited Performance level selection in a data processing system
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems

Also Published As

Publication number Publication date
US20120071216A1 (en) 2012-03-22
KR20130044373A (ko) 2013-05-02
US8320898B2 (en) 2012-11-27
CN103154854A (zh) 2013-06-12
JP5568689B2 (ja) 2014-08-06
JP2013545158A (ja) 2013-12-19
EP2616898A1 (en) 2013-07-24
WO2012036780A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
KR101461459B1 (ko) 한 세트의 성능 스케일링 알고리즘들을 노출 및 관리하기 위한 모바일 디바이스 및 방법
KR101448974B1 (ko) 한 세트의 성능 스케일링 알고리즘들의 구성을 최적화하기 위한 시스템들 및 방법들
KR101562448B1 (ko) 휴대용 컴퓨팅 디바이스의 멀티코어 프로세서에서 다수의 코어들로의 전력을 동적으로 제어하는 방법 및 시스템
US8478567B2 (en) Systems and methods for measuring the effectiveness of a workload predictor on a mobile device
US8429441B2 (en) Operating processor below maximum turbo mode frequency by sending higher than actual current amount signal to monitor
EP3022627B1 (en) System and method for idle state optimization in a multi-processor system on a chip
US10064141B2 (en) Core frequency/count decision-based thermal mitigation optimization for a multi-core integrated circuit
EP2513750A1 (en) System and method for asynchronously and independently controlling core clocks in a multicore central processing unit
US20230199049A1 (en) Modifying content streaming based on device parameters
KR101499303B1 (ko) 중앙 처리 유닛 내의 데이터를 샘플링하는 시스템 및 방법
US20160162006A1 (en) User Scheduled Portable Device Power Management
US9740587B2 (en) Distributing power usage data for low-level components of a computing device to subscribing programs
KR101421361B1 (ko) 워크로드 요청들에 기초하여 동적 클록 및 전압 스위칭 알고리즘을 조정하는 시스템 및 방법
TW201316252A (zh) 用於量測行動裝置上工作負載預測器之效益之系統及方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170929

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 6