KR20130126717A - 낮은 오버헤드를 갖는 전력 프로파일 정보의 획득 - Google Patents

낮은 오버헤드를 갖는 전력 프로파일 정보의 획득 Download PDF

Info

Publication number
KR20130126717A
KR20130126717A KR1020137025178A KR20137025178A KR20130126717A KR 20130126717 A KR20130126717 A KR 20130126717A KR 1020137025178 A KR1020137025178 A KR 1020137025178A KR 20137025178 A KR20137025178 A KR 20137025178A KR 20130126717 A KR20130126717 A KR 20130126717A
Authority
KR
South Korea
Prior art keywords
power state
low power
state transition
power
counter
Prior art date
Application number
KR1020137025178A
Other languages
English (en)
Other versions
KR101496077B1 (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 KR20130126717A publication Critical patent/KR20130126717A/ko
Application granted granted Critical
Publication of KR101496077B1 publication Critical patent/KR101496077B1/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
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3093Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Power Sources (AREA)

Abstract

일 실시예에서, 방법은 멀티코어 프로세서의 코어에 대한 복수의 전력 상태 전이 이벤트의 발생 시에, 타이머의 만료 또는 인터럽트의 트리거 없이, 상기 코어의 시스템 카운터의 값 및 코어의 저전력 카운터들의 값을 판독하는 단계를 포함한다. 이 값들은 프로세서의 저장소에 저장될 수 있다. 다음으로, 수집이 완료된 후, 저장된 값들을 이용하여 프로세서의 전력 프로파일을 결정하기 위해 저장소가 액세스될 수 있다. 다른 실시예들이 설명되고 청구된다.

Description

낮은 오버헤드를 갖는 전력 프로파일 정보의 획득{OBTAINING POWER PROFILE INFORMATION WITH LOW OVERHEAD}
최신의 컴퓨터 시스템들은 데이터 프로세싱, 액세스 정보, 및 그 외의 다수의 익숙한 태스크들을 수행하기 위해 함께 연결된 다수의 상이한 컴포넌트들을 포함한다. 그러나, 동작 중일 때조차도, 다수의 컴포넌트들 또는 그것의 일부분들은 유용한 작업을 수행하는 데에 필요하지 않을 수 있다. 흔히, 이 컴포넌트들은 전력 소비를 감소시키기 위해 저전력 상태로 놓여질 수 있다. 디바이스라고도 지칭되는 이 컴포넌트들은 전력을 소비하는 특정 칩, 프로세서, 또는 임의의 다른 하드웨어 엔티티일 수 있다. 또한, 프로세서 또는 시스템-온-칩(SoC: system-on-a-chip)과 같은 단일 칩은 자신의 컴포넌트들 중 하나 이상을 저전력 상태로 제어가능하게 놓을 수 있다.
전력 소비의 분석에서 도움을 주기 위해, 디바이스의 전력 상태의 타임라인인 전력 프로파일이 결정될 수 있다. 다수의 시스템에서, 디바이스의 전력 상태를 결정하기 위해, 프로세서는 전력 프로파일 정보를 획득하기 위한 명령어들 또는 다른 동작들을 수행하기 위해 비-저전력 상태에 있어야 한다. 즉, 프로파일링되고 있는 시스템 상에서 실행되는 프로파일링 애플리케이션은 이벤트(예를 들어, 인터럽트 또는 타이머)를 스케줄링함으로써 동작한다. 이벤트가 발생할 때, 운영 체제는 그것이 프로파일링하고 있는 행동을 기술하는 데에 필요한 정보를 수집하기 위해 애플리케이션을 호출한다. 그러나, 이 정보를 획득하기 위해 프로세서가 완전 전력 상태(fully powered state)에 있게 하는 경우, 전력 소비를 감소시키려는 목표는 실패하게 된다. 즉, 플랫폼에 관한 전력 정보의 이러한 주기적인 수집은 추가의 전력이 이용되게 하고, 뿐만 아니라 플랫폼의 전력 행동을 왜곡한다.
도 1은 본 발명의 일 실시예에 따른 타이밍 시퀀스를 도시한다.
도 2는 본 발명의 일 실시예에 따라 전력 프로파일링을 수행하기 위한 전체적인 방법의 흐름도이다.
도 3은 본 발명의 하나의 실시예에 따른 수집 방법의 흐름도이다.
도 4는 본 발명의 일 실시예에 따라 데이터 수집을 종료하기 위한 방법의 흐름도이다.
도 5는 본 발명의 일 실시예에 따라 수집된 데이터를 처리하기 위한 방법의 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 프로세서의 블록도이다.
도 7은 본 발명의 일 실시예에 따른 시스템의 블록도이다.
다양한 실시예들에서, 전력 프로파일링은 프로세서 또는 다른 디바이스가 불필요하게 저전력 상태를 탈출하게 하지 않고서 수행될 수 있다. 이러한 방식에서, 전력 프로파일링 정보는 (예를 들어, 전력 프로파일 정보를 수집하기 위해 저전력 또는 슬립 상태의 프로세서를 이용하지 않음으로써) 감소된 전력 소비로 결정될 수 있다. 따라서, 실시예들은 프로세서가 저전력 또는 슬립 상태를 탈출하게 하지 않고서 플랫폼 상에서의 전력 프로파일링을 가능하게 하는 한편, 사용자가 플랫폼을 매우 정확하게 프로파일링하게 해 주는 방법을 제공한다. 많은 실시예들에서, 하드웨어 전력 계측(instrumentation) 기능 및 전력 상태 전이들을 추적하기 위해 이용되는 이벤트들은 전력 프로파일링 애플리케이션이 플랫폼의 전력 사용을 매우 정확하게 프로파일링할 수 있도록 결합될 수 있다. 여기에서는 예시적인 실시예들이 프로세서들에 관하여 설명되지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 전력 프로파일링은 SoC(system-on-a-chip) 등과 같은 시스템의 다른 컴포넌트들에도 적용될 수 있음을 이해해야 한다. 구체적으로, SoC는 항상 온 상태이고 SoC 전체의 전력을 관리하는 작은 프로세서인 시스템 제어 유닛(SCU)을 포함할 수 있다. 일부 실시예들은 이 프로세서로부터 전력 프로파일러를 실행할 수 있고, 플랫폼의 임의의 컴포넌트를 모니터링할 수 있다.
프로세서 전력 상태 전이 이벤트들은 프로세서가 그것의 현재 전력 상태를 변경하는 때를 추적한다. 그러한 전력 상태 전이 이벤트들은 능동-슬립(active-to-sleep) 전이 및 슬립-능동(sleep-to-active) 전이를 포함한다. 여기에서 이용될 때, "슬립 상태" 및 "저전력 상태"라는 용어는 정상 동작 상태보다 적은 디바이스의 전력 상태를 지칭하기 위해 교체 사용이 가능하다는 것에 주목해야 한다. 그러한 저전력 상태들에서는, 예를 들어, 프로세서를 참조하면, 일부 컴포넌트들은 계속 파워온 상태로 기능하는 한편, 다른 컴포넌트들은 파워오프 상태에 있다. 프로세서가 저전력 상태에 진입하면 전력이 보존된다. 프로세서는 저전력 상태에 진입하도록 프로그래밍될 수 있거나, 실행 중인 작업량(workload)이 그것의 지원을 필요로 하지 않음을 프로세서가 검출할 때 저전력 상태로 자동 진입할 수 있다. 즉, 일부 실시예들에서, 그러한 이벤트들은 소프트웨어(예를 들어 운영 체제(OS)) 또는 하드웨어(예를 들어, 프로세서 자체)에 의해 트리거될 수 있다. 다양한 실시예들에서, 전이 이벤트의 발생 시에, 프로파일링 애플리케이션 또는 다른 프로파일러가 통보를 받을 수 있다.
프로세서 전력 상태 전이 이벤트의 일례는 Linux™ 운영 체제에 존재하는데, 즉 전력_시작 추적점(power_start tracepoint)(C-상태 진입 추적점이라고도 지칭됨)이다. C-상태 진입 추적점은 운영 체제가 프로세서를 슬립 상태에 진입하도록 프로그래밍하려고 준비 중일 때 실행된다. 이 추적점들은 커널 계측 메커니즘이며, 개발자들이 커널의 기능을 더 잘 이해할 수 있게 하기 위해 커널 소스 코드 플로우 내의 포인트들에 배치될 수 있다. 즉, 추적점은 커널 소스 코드 내에서의 printf 함수(function) 호출과 유사하다.
추적점들은 디바이스 드라이버가 추적점에 동적으로 접속되는 것을 허용하는 기능을 제공한다. 디바이스 드라이버가 추적점에 접속될 때(예를 들어, 등록될 때), 운영 체제는 그 추적점을 포함하는 커널 소스 코드가 실행될 때 디바이스 드라이버 내의 함수를 호출한다. 즉, C-상태 진입 추적점은 프로세서가 슬립 상태에 진입할 준비를 하고 있을 때 전력 프로파일링 애플리케이션에 통보하기 위해 이용될 수 있다. Linux™ OS를 위한 구현에 관하여 설명되었지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 실시예들은 다른 OS들과도 함께 이용될 수 있음을 이해해야 한다는 점에 주목한다. 즉, 더 일반적으로, 실시예들은, 예를 들어, OS에 의해 구현되는 바와 같은, 전력 상태 전이에서 소정의 전력 상태 정보의 수집에 대해 제공한다.
프로세서가 소정의 저전력 상태들에 진입할 때, 그것은 통상적으로 동작을 중단한다. 즉, 그것은 더 이상은 명령어들을 실행하지 않는다. 프로세서가 저전력 상태에 진입하도록 프로그래밍될 때, 그것은 요청된 슬립 상태로부터 벗어나기를 선택할 수 있다. 즉, 운영 체제는 하드웨어를 슬립 상태 1에 진입하도록 프로그래밍할 수 있는 한편, 하드웨어는 현재의 플랫폼 활동에 관한 지식에 기초하여 슬립 상태 2에 진입하기를 선택할 수 있다. 대표적인 프로세서들은 Intel™ ISA(instruction set architecture)에 기초하는 것들을 포함하며, 이것은, 예를 들어, 프로세서 코어에 대해 복수의 저전력 또는 소위 C-상태를 제공하는 ACPI(Advanced Configuration and Power Interface) 표준, 예를 들어, Rev. 3.0b (2006년 10월 10일에 공개됨)에 따른, 다수의 저전력 상태를 제공할 수 있다.
일부 실시예들에서, 프로세서는 전력 프로파일링 정보에 관련하여 하드웨어 지원을 제공할 수 있다. 예를 들어, 멀티코어 프로세서에서, 각각의 코어는 저전력 상태 레지던시(residency) 카운터(예를 들어, C-상태 레지던시 카운터)를 포함할 수 있다. 저전력 상태 레지던시 카운터는 하드웨어가 특정 저전력 상태에 있을 때 (예를 들어 프로세서 사이클들을) 카운트하는 단조 증가(monotonically increasing) 카운터이다. 예를 들어, 프로세서는 소정의 지정된 저전력 상태, 예를 들어, C-상태 C3 및 C6에 대해서만 C-상태 레지던시 카운터를 제공할 수 있다. 이러한 하드웨어 모니터링 계측은 하드웨어의 저전력 행동의 정확한 모니터링을 허용한다. 또한, 하드웨어는 시스템 타임 카운터를 제공할 수 있다. 예를 들어, 프로세서는 코어마다(on a per core basis) 타임 스탬프 카운터(TSC)를 제공할 수 있다. 일부 실시예들에서, 이 카운터들은: 하드웨어가 활성일 때 또는 저전력 상태에 있을 때, 항상 카운트하는 단조 증가 카운터이다.
위에서 논의된 바와 같이, 종래의 프로파일링 애플리케이션들은, 그 프로파일링 애플리케이션이 소정의 정보를 수집할 수 있도록 이벤트(예를 들어, 인터럽트 또는 타이머)를 스케줄링한다. 그러나, 이것은 정확하게는 전력 프로파일링 소프트웨어가 슬립 상태의 프로세서로 하여금 슬립 상태를 탈출하게 할 수 있는 행동이다. 프로세서는 슬립 상태를 탈출하면, 자신의 정상 전력 소비 모드로 동작을 계속한다. 즉, 이벤트들을 스케줄링하는 종래의 프로파일링 애플리케이션은, 애플리케이션 프로파일러가 실행 중이지 않은 플랫폼에 비교하여, 추가의 전력이 플랫폼에 의해 소비되게 한다(그리고 저전력 성능 정보를 왜곡할 수 있다). 실시예들은 플랫폼에 관한 전력 정보를 수집하기 위한 트리거 이벤트로서 프로세서 전력 상태 전이 이벤트들을 이용하므로, 타이머 또는 인터럽트가 회피되며, 실시예들은 프로세서가 능동적으로 실행 중일 때에만 데이터를 획득한다. 이러한 방식으로, 프로파일링 애플리케이션은 플랫폼을 프로파일링하는 데에 이용되는 전력을 최소화하고, 플랫폼 저전력 행동의 왜곡을 회피한다.
하나의 실시예에서, 디바이스 드라이버는 전력 프로파일 정보를 수집하기 위해 이용될 수 있지만; 다른 실시예에서는, 다른 권한 레벨(privileged level) 소프트웨어 또는 심지어는 사용자 레벨 소프트웨어가 정보를 획득할 수 있다. 디바이스 드라이버는 프로세서가 저전력 상태에 진입할 준비를 하고 있을 때를 통보받기 위해 프로세서 전력 상태 전이 이벤트를 이용한다. 이러한 구현에서, 디바이스 드라이버는 OS의 전력 상태 전이 코드에 함수, 예를 들어, 수집 함수(collection function)를 등록한다. 예를 들어, 하나의 실시예에서, 이 코드는 Linux™ C-상태 진입 추적점일 수 있고, 등록은 운영 체제가 프로세서를 슬립 상태로 두기로 결정할 때마다, C-상태 진입 추적점이 등록된 함수를 호출하게 한다.
OS가 자신의 C-상태 진입 추적점을 실행할 때, 디바이스 드라이버의 수집 함수는, 하나의 실시예에서, 시스템 클록 및 프로세서의 슬립 상태 레지던시 카운터를 판독하고, 액세스된 정보가 저장된다. 예를 들어, 샘플 A를 획득하기 위해 제1 C-상태 진입 추적점에서 제1 수집이 발생할 수 있다. 다음 번 C-상태 진입 추적점이 실행될 때, 디바이스 드라이버의 함수는 샘플 B에 대하여 동일한 정보를 수집한다. 이러한 동작은 데이터의 수집 동안 계속된다. 단일 C-상태 진입 추적점 동안 소수의 레지스터만이 판독되므로, 수행 비용은 최소일 수 있다.
도 1은 본 발명의 일 실시예에 따른 타이밍 시퀀스를 도시한다. t0에서, C-상태 진입 추적점이 실행되고, 샘플 A가 수집된다. 다음으로, 프로세서는 슬립 상태에 진입한다. 진입된 슬립 상태는 운영 체제가 프로그래밍한 상태와 다를 수 있음에 주목해야 한다. t1에서, 하드웨어가 자신의 슬립 상태를 탈출하여 정상 동작 및 전력 소비로 복귀하게 하는 이벤트가 발생한다. 슬립 상태를 탈출하게 한 이벤트(예를 들어, 인터럽트 또는 타이머 만료)는 전력 프로파일러에 의해 스케줄링되지 않았다. t2에서, C-상태 진입 추적점이 다시 실행되고, 샘플 B가 수집된다. 데이터 수집은, 추적점에 의해 트리거되는 대신에, OS 또는 플랫폼 로직의 또 다른 통보 메커니즘에 응답하여 발생할 수 있음에 주목해야 한다.
수집이 종료한 후, 수집된 데이터는, 예를 들어, 프로파일링 애플리케이션에 의해 처리될 수 있다. 샘플 B의 시스템 클록 값과 샘플 A의 시스템 클록 값 사이의 차이가 계산되고, 이것은 2개의 전력 상태 전이 이벤트 간의 실제 시간에 대응할 수 있다. 제1 전력 상태 전이 이벤트에 대한 저전력 상태(및 다양한 실시예들에서 사이클 또는 시간으로 측정될 수 있는 길이 또는 지속시간)를 결정하기 위해, 샘플 A 및 샘플 B를 위한 레지던시 카운트들 간의 차이도 계산될 수 있다.
예를 들어, 2개의 레지던시 카운터 - 상태 C3를 위한 것 및 상태 C6를 위한 것 - 가 존재한다고 가정한다. 또한, 샘플 A 및 샘플 B에서, 표 1에 나타난 것과 같이 이하의 값들이 수집되었다고 가정한다.
샘플 A 샘플 B
시스템 클록 7,100,000 7,100,500
C3 1,500,100 1,500,100
C6 3,200,000 3,200,300
이 데이터로부터, 전력 프로파일러는 어느 슬립 상태에 진입했는지(이 경우에서는 C3 카운터가 변경되지 않았으므로 C6임), 슬립 상태에서의 동작에 얼마나 많은 시간에 소비되었는지(C6에서 300 카운트가 소비되었음), 및 정상 전력 레벨에서 얼마나 많은 시간이 소비되었는지(200 카운트: 총 시간 - 슬립 시간)를 정확하게 결정할 수 있다.
위에서 논의된 바와 같이, 실시예들은 다양한 시스템들에 포함될 수 있고, 상이한 컴포넌트들을 이용할 수 있다. 일부 실시예들에서, 방법은 수행 분석 도구들의 집합의 일부로서 구현될 수 있다. 더 구체적으로, 실시예들은 시스템의 컴포넌트 내의 전력 상태 전이들에 관한 정보를 획득하고 그 데이터를 처리할 수 있는 그러한 도구의 전력 프로파일러 내에 통합될 수 있다. 다음으로, 이 데이터는 사용자, 컴파일러, 운영 체제 또는 다른 그러한 엔티티와 같은 주어진 엔티티에 의한 분석을 가능하게 할 수 있다. 여기에 설명된 실시예들은 멀티코어 프로세서와 같은 프로세서 내에서 발생하는 전력 전이들에 관한 것이다. 그러나, 이러한 특정한 구현으로 설명되지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 다른 실시예들에서는 칩셋, 메모리, 주변 디바이스들 등과 같은 시스템의 다른 컴포넌트들도 본 발명의 일 실시예에 따른 전력 모니터링으로부터 혜택을 받을 수 있음을 이해해야 한다.
이제, 도 2를 참조하면, 본 발명의 일 실시예에 따라 전력 프로파일링을 수행하기 위한 전체적인 방법의 흐름도가 도시되어 있다. 도 2에 도시되어 있는 바와 같이, 수행 분석기, 더 구체적으로는 분석기의 전력 프로파일러 내에서 구현될 수 있는 방법(10)은 전력 프로파일러의 디바이스 드라이버를 초기화함으로써 시작할 수 있다(블록(20)). 디바이스 드라이버의 그러한 초기화는 다양한 프로세서 레지스터들과 같은 특권 자원들에 액세스하는 능력과 같은 디바이스 드라이버에 관련된 로우 레벨 기능을 가능하게 할 수 있다. 다음으로, 제어는, 예를 들어, 이 드라이버의 수집 함수가 전력 상태 전이 이벤트 동안 호출되도록 등록될 수 있는 블록(30)으로 패스된다. 하나의 예로서, 전력 상태 전이 이벤트들을 처리하는 OS 모듈은 이 수집 함수를 등록하기 위해 업데이트될 수 있다. Linux™ OS를 위한 하나의 특정한 실시예에서, 이 수집 함수는 전력 전이들에 관한 계측을 처리하는 추적점에 등록될 수 있다.
계속하여 도 2를 참조하면, 다음으로, 수집 함수 동안 획득될 전력 상태 전이 정보의 저장을 위해 버퍼가 할당될 수 있다(블록(40)). 예로서, 이 버퍼는 프로세서의 캐시 메모리, 예를 들어, 최종 레벨 캐시에 셋업될 수 있다. 따라서, 이 때, 전력 프로파일러는 전력 상태 전이 이벤트의 발생 시에 전력 상태 전이 정보를 획득하기 위해 수집 동작들을 수행하도록 구성된다.
따라서, 전력 상태 전이 이벤트에 대해 수집이 수행될 수 있는 블록(50)으로 제어가 패스되어, 획득되는 대응 정보가 버퍼에 저장될 수 있다. 다양한 실시예들에서, 저전력 모드로의 진입에 대응하는 전력 상태 전이 이벤트 시에 수집이 수행될 수 있다. 이것은, 프로세서를 저전력 모드에 진입하도록 준비시켜 진입할 수 있게 하기 위해 OS에 의해 다양한 동작들이 수행되기 때문이다. 그러나, 다른 실시예들에서, 정보는 저전력 모드로부터의 탈출 시에 대신 획득될 수 있다. 어느 경우에서든, 종래의 전력 프로파일러의 (예를 들어, 인터럽트 또는 타이머에 따른) 시스템 동작의 무작위 시간들에서가 아니라, 프로파일링 윈도우 동안 (특정 방향의, 즉, 저전력 모드로 들어가거나 나오는) 모든 전력 상태 전이 이벤트에서 정보가 결정론적으로 수집될 수 있음에 주목한다. 이러한 수집은, 다양한 실시예들에서 광범위하게 달라질 수 있는 프로파일링 윈도우에 대응하는 시간 기간 동안의 (한 방향의) 다수의 연속적인 전력 상태 전이 이벤트들에 대해 발생할 수 있는데, 예를 들면, 수집은 1초만큼 짧을 수 있지만, 통상적으로는 시스템을 구동하는 작업량만큼(통상적으로는 몇 분이지만 드물게는 몇 시간) 오래 지속할 것이다.
따라서, 복수의 연속적인 전력 상태 전이 이벤트로부터의 정보는 수집 윈도우 동안 수집될 수 있다. 본 발명의 범위가 이와 관련하여 한정되지는 않지만, 다양한 실시예들에서, 이러한 전이 이벤트와 관련하여 수집된 정보는 타임스탬프 카운터와 같은 시스템 레벨 카운터를 포함하는 다양한 카운터들의 값, 및 프로세서 내에서 이용가능한 상이한 저전력 상태들에 관련된 하나 이상의 카운터의 값을 포함할 수 있다. 예를 들어, 각각의 C-상태는 주어진 저전력 모드의 지속시간을 카운팅하는 데에 이용될 수 있는 관련 머신 특정 레지스터(MSR: machine specific register)를 가질 수 있다. 각각의 수집 후에, 수집이 완료되었는지가 결정될 수 있다(마름모(60)). 예를 들어, 다양한 실시예들에서, 전력 프로파일러는 미리 결정된 양의 시간 또는 미리 결정된 수의 전력 상태 이벤트 등에 대해 데이터를 수집하도록 구성될 수 있다. 수집이 완료되지 않았으면, 제어는 블록(50)으로 다시 패스된다.
그렇지 않으면, 제어는 블록(70)으로 패스되고, 거기에서 수집으로 획득된 전력 상태 전이 정보가 처리되고 사용자에게 보고될 수 있다. 도 2의 실시예에서는 비교적 하이 레벨에서 논의되었지만, 상이한 실시예들에서 다양한 상세 및 수정이 가능하다는 것을 이해해야 함에 주목한다.
이제, 도 3을 참조하면, 본 발명의 하나의 실시예에 따른 수집 방법의 흐름도가 도시되어 있다. 위에서 논의된 바와 같이, 일부 실시예들에서, 수집 방법은 MSR, 시스템 카운터 등과 같은 특권 자원들에 존재하는 정보에 액세스할 수 있는 드라이버로의 함수 호출을 통해 구현될 수 있다. 그러나, 다른 실시예들에서, 수집은 사용자 모드에서 발생할 수 있음을 이해해야 한다. 도 3에서, 방법(100)은 블록(110)에서 시스템 클록을 판독하는 것에 의해 시작할 수 있다. 다양한 실시예들에서, 시스템 클록은 저전력 상태에 놓여질 코어에 존재하는 타임스탬프 카운터에 대응할 수 있다. 따라서, 프로세서는 코어마다 전력 관리를 수행하도록 제어될 수 있으므로, 수집 동작들은 코어 입도(core granularity)로 수행될 수 있음을 이해해야 한다. 그러나, 다른 실시예들에서, 프로세서는 패키지 레벨 전력 관리에 대해서만 제공할 수 있고, 따라서, 그러한 실시예들에서는, 정보가 패키지 레벨에서 획득될 수 있다. 또 다른 구현예들에서, 코어 레벨 및 패키지 레벨의 전력 상태 정보의 결합이 획득될 수 있다.
도 3을 다시 참조하면, 판독되는 시스템 클록 값은 버퍼 내에 저장될 수 있다(블록(120)). 더 구체적으로, 각각의 수집에 대하여, 버퍼의 엔트리가 할당될 수 있고, 이 시스템 클록 값을 각각의 이용가능한 저전력 상태와 관련된 단조 카운터의 값들과 함께 저장하기 위해 이용될 수 있다.
따라서, 도 3에서는, (마름모(130)에서 결정된 바와 같은) 프로세서 내에서 이용가능한 각각의 가능한 슬립 상태에 대하여, 그 저전력 상태를 위한 대응 레지던시 카운터를 판독하는 것을 포함하는 루프가 트래버스되고(블록(140)), 이것은 저전력 상태에 대한 MSR을 판독하고, 그 카운터 값을 버퍼 내의 엔트리에 기입하는 것을 통해 실현될 수 있다(블록(150)). 이용가능한 저전력 상태들에 대해 그러한 카운터 전부가 판독된 때, 방법(100)은 종결될 수 있다. 따라서, 전력 상태 전이 이벤트에 대한 수집 프로세스가 완료되고, 획득된 정보가 버퍼 엔트리 내에 저장된다. 도 3의 실시예에서는 이러한 특정 집합의 정보로 설명되었지만, 본 발명의 범위는 이와 관련하여 한정되지 않으며, 다른 실시예들에서는, 추가의 또는 상이한 정보가 획득될 수 있음을 이해해야 한다. 예를 들어, 하나의 실시예에서, 이러한 추가의 정보는 (하드웨어에 의해 실제로 이용되는 저전력 상태가 아닐 수 있는) OS에 의해 요청되는 저전력 상태를 포함할 수 있다.
도 3과 관련하여 설명된 것과 같은 수집 프로세스는 여러 회 수행될 수 있다. 원하는 양의 데이터가 수집된 때, 전력 프로파일러는 데이터 수집을 종료할 뿐만 아니라, 추가의 처리를 위해 데이터를 준비하기 위한 다양한 동작들을 수행할 수 있다. 이제, 도 4를 참조하면, 본 발명의 일 실시예에 따라 데이터 수집을 종료하기 위한 방법의 흐름도가 도시되어 있다. 도 4에 도시된 바와 같이, 방법(200)은 디바이스 드라이버의 언로드 프로세스에서의 다양한 액션들을 수행할 수 있다(블록(210)). 일반적으로, 드라이버는 데이터를 플러싱하고(예를 들어, 그것을 디스크에 기입하고), 버퍼를 비우고, 언로드 전에 수집 함수를 등록해제한다. (드라이버의 언로드를 제외한) 이러한 단계들은 모든 수집 후에 발생할 수 있다. 드라이버는 "insmod" 또는 "rmmod" 커맨드로 수동으로 삽입 및 제거될 수도 있고(Linux™ OS에서), 또는 드라이버는 부트 시에 자동으로 로드되어 절대로 제거되지 않을 수도 있다. 마지막으로, 일부 OS들에서, 디바이스 드라이버들은 특정한 사용자 모드 시스템 호출들에 의해 로드 및 언로드될 수 있다. 그러한 구현들에서, 시퀀스는: (1) 드라이버를 로드하는 것; (2) 얼마 후에, 수집을 실행하는 것; (3) 원하는 경우, 단계(2)를 반복하는 것; 및 (4) 드라이버를 언로드하는 것일 수 있다. 또한, 일부 구현들에서, 수집된 데이터는 수집을 제어하는 사용자 레벨 코드로 반환될 수 있고, 사용자 레벨 코드에 의해 파일에 저장됨에 주목한다. 즉, 드라이버는 실제로는 파일에 기입하지 않고, 대신에 버퍼를 사용자 레벨 코드로 패스하고, 사용자 레벨 코드가 수집 동안 데이터를 파일에 기입한다. Linux™ OS에서, 이러한 유형의 디바이스 드라이버는 '캐릭터' 드라이버라고 지칭된다.
볼 수 있는 바와 같이, 방법은 버퍼가 파일에 기입될 수 있는 블록(215)에서 시작한다. 예를 들어, 위에서 논의된 것과 같이 프로세서의 캐시 내의 임시 저장소에 위치될 수 있는 버퍼는 파일 시스템에 전달되어, 추후의 액세스를 위해, 예를 들어, 시스템 메모리 내에 데이터 파일(220)로서 저장될 수 있다. 다음으로, 제어는 블록(225)으로 패스되고, 거기에서 버퍼는 OS의 자원 풀에 반환되도록 비워질 수 있다. 마지막으로, 제어는 수집 함수가 등록해제될 수 있는 블록(230)으로 패스된다. 즉, 수집 함수가 등록되었던 OS 추적점 또는 다른 커널(또는 다른 위치)은 전력 상태 전이 이벤트 동안 함수가 더 이상 호출되지 않도록 등록해제될 수 있다. 이 때, 디바이스 드라이버가 언로드될 수 있다.
따라서, 이 때, 원하는 전력 상태 정보가 획득되었고, 사용자 또는 시스템의 분석 도구와 같은 다른 엔티티에 의한 분석을 가능하게 하기 위해 더 처리될 수 있다. 이제, 도 5를 참조하면, 본 발명의 일 실시예에 따라 수집된 데이터를 처리하기 위한 방법의 흐름도가 도시되어 있다. 도 5에 도시되어 있는 바와 같이, 방법(250)은 데이터 파일(220)을 처리함으로써 시작할 수 있다(블록(260)). 하나의 실시예에서, 이 처리는 무엇이 프로세서로 하여금 활성 상태로 다시 전이되게 했는지에 관한 설명(description)(예를 들어, 타이머 또는 인터럽트, 또는 심지어는 활성 상태로 다시 전이하게 한 이벤트를 야기한 소스 코드 호출 스택의 설명)을 데이터에 연관시키는 것을 포함할 수 있다. 따라서, 이 때, 데이터는, 예를 들어, 전력 프로파일러의 유틸리티에 의해 처리될 포맷이다.
계속하여 도 5를 참조하면, 제어는 제1 전력 상태 전이 이벤트에 대한 수집에 대응하는 제1 샘플이 데이터 파일로부터 판독될 수 있는 블록(265)으로 패스된다. 다음으로, 마름모(270)에서 결정된 바와 같이, 파일 내의 각각의 추가의 샘플에 대해 루프가 수행될 수 있다. 구체적으로, 이 루프에서, 블록(275)에서는 현재 샘플과 이전 샘플 간의 경과 시간이 계산될 수 있다(블록(275)). 추가로, 블록(280)에서, 현재 샘플의 레지던시 카운트들과 이전 샘플의 레지던시 카운트들 각각 사이의 차이가 계산될 수 있다. 블록(290)에서, 계산된 결과들이 테이블에 저장될 수 있다. 따라서, 인접 샘플들의 각각의 쌍에 대해, 저전력 상태로의 이전 진입과 저전력 상태로의 현재 진입 사이의 경과 시간(시스템 클록의 개수 차이에 의해 결정됨)이 결정될 수 있다. 또한, 대응하는 레지던시 카운트들 사이의 차이에 기초하여, 저전력 상태에서의 지속시간의 결정뿐만 아니라, 저전력으로의 이전의 전이에서 진입되었던 주어진 저전력 상태가 결정될 수 있다. 따라서, 샘플들의 각각의 쌍에 대하여, 이전의 저전력 진입의 지속시간 및 유형뿐만 아니라, 2개의 전력 상태 이벤트 간의 경과 시간이 결정될 수 있다. 따라서, 이 값들은 다른 레지던시 카운터들(모두 제로일 수 있음)의 차이와 함께 테이블의 엔트리에 저장될 수 있다. 따라서, 이러한 루프는 데이터 파일 내의 각각의 추가의 샘플들에 대해 진행된다.
이러한 처리의 마지막에, 제어는 결과가 사용자에게 출력될 수 있는 블록(295)으로 패스된다. 예를 들어, 출력은 수집 동안의 활동을 설명하는 타임라인의 형태를 취할 수도 있고, 또는 상태가 얼마나 자주 활용되었는지를 설명하는 히스토그램 등으로서 디스플레이될 수 있도 있다. 몇몇 예로서, 출력은 플랫폼의 디스플레이 상의 프린트아웃 또는 사용자가 볼 수 있는 디스플레이일 수 있다. 또한, 테이블에 저장되는 결과들은 컴파일러, OS 또는 다른 도구와 같은 다른 분석 및 제어 도구들에 의해 이용될 머신 판독가능한 형태로 이용가능하게 될 수도 있다. 하나의 예로서, 테이블 내의 정보는 인간이 판독가능한 형태 및/또는 컴퓨터가 판독가능한 형태로 OS 엔티티에 제공될 수 있다. 이 정보는 전력 관리 결정에 관한 성능을 개선하기 위해, OS 개발자 및/또는 운영 중인 OS 자체에 의해 이용될 수 있다. 예를 들어, 개발자는 수신된 정보에 기초하여 OS의 전력 관리 코드를 업데이트할 수 있다.
(위에서 논의된 것과 같은) 그러한 하나의 예로서, 프로세서 하드웨어가 OS에 의해 요청된 것과는 다른 저전력 상태에 진입하기를 선택할 수 있다. OS 엔티티는, 테이블 내에서 이용가능한 정보, 즉 주어진 구간에 진입된 특정한 저전력 상태의 지속시간 및 유형에 기초하여, 저전력 상태에 진입하려는 자신의 요청이 다른 저전력 상태에 대한 프로세서의 선택을 지지하여 수락되지 않도록 결정할 수 있다. 이러한 정보에 기초하여, OS 엔티티는, 예를 들어, 장래의 OS 릴리즈에서 상이한 전력 관리 결정들을 실시하도록, 자신의 전력 관리 알고리즘 및/또는 휴리스틱스(heuristics)을 수정할 수 있다. 또한, 그러한 정보가 플랫폼 상에서 실행 중인 현재의 OS 인스턴스 생성(instantiation)에 대해 컴퓨터 판독가능한 형태로 제공되는 일 실시예에서, OS 인스턴스 생성은 자신의 제어 알고리즘을 실시간으로 업데이트할 수 있고, 장래의 실행에서 그러한 정보에 기초하여 더 나은 결정을 행할 수 있다. 도 5의 실시예에서는 이러한 특정한 구현으로 도시되었지만, 본 발명의 범위는 이와 관련하여 한정되지 않음을 이해해야 한다.
이제, 도 6을 참조하면, 본 발명의 일 실시예에 따른 프로세서의 블록도가 도시되어 있다. 도 6에 도시된 바와 같이, 프로세서(400)는 복수의 코어(410a-410n)를 포함하는 멀티코어 프로세서일 수 있다. 하나의 실시예에서, 각각의 그러한 코어는, 예를 들어, 프론트엔드 유닛들, 아웃-오브-오더(out-of-order) 로직, 실행 유닛들, 및 리타이어먼트 로직(retirement logic)과 같은 백엔드 유닛들을 갖는 파이프라인을 포함할 수 있다. 추가로, 위에서 설명된 바와 같이, 각각의 코어는 머신 특정 레지스터와 같은 레지스터, 수행 모니터 등으로서 구현될 수 있는 다양한 카운터들을 포함할 수 있다. 도 6의 실시예에서, 이 카운터들은 타임스탬프 카운터(412)를 포함한다. 카운터(412)는 프로세서의 명목 주파수(nominal frequency)에서, 예를 들어, 머신 사이클로서 카운트하도록 구성될 수 있고, 일부 실시예들에서는, 코어(또는 전력이 프로세서에 제공되는 한은 프로세서)의 전력 상태 및 복수의 저전력 카운터(4140-x)에 무관하게 연속적으로 카운트할 수 있는데, 각각의 그러한 카운터는 코어가 주어진 저전력 상태에 있는 사이클들을 카운트한다.
다양한 코어들은 상호접속(415)을 통해 다양한 컴포넌트들을 포함하는 언코어(uncore)(420)에 연결될 수 있다. 볼 수 있는 바와 같이, 언코어(420)는 최종 레벨 캐시일 수 있는 공유 캐시(430)를 포함할 수 있다. 추가로, 언코어는 통합된 메모리 제어기(440), 다양한 인터페이스(450) 및 전력 제어 유닛(455)을 포함할 수 있으며, 이들은 일부 실시예들에서 OS에 독립적으로 저전력 상태들에 진입 및 그로부터 탈출하기 위해 이용될 수 있다. 볼 수 있는 바와 같이, 프로세서(400)는, 예를 들어, 메모리 버스를 통해 시스템 메모리(460)와 통신할 수 있다. 추가로, 인터페이스들(450)에 의해, 주변 디바이스들, 대용량 저장소 등과 같은 다양한 오프-칩 컴포넌트들에의 접속이 이루어질 수 있다. 도 6의 실시예에서는 이러한 특정한 구현으로 도시되었지만, 본 발명의 범위는 이와 관련하여 한정되지 않는다.
실시예들은 다수의 상이한 시스템 유형들로 구현될 수 있다. 이제, 도 7을 참조하면, 본 발명의 일 실시예에 따른 시스템의 블록도가 도시되어 있다. 도 7에 도시된 바와 같이, 멀티프로세서 시스템(500)은 점-대-점 상호접속 시스템이고, 점-대-점 상호접속(550)을 통해 연결된 제1 프로세서(570) 및 제2 프로세서(580)를 포함한다. 잠재적으로 훨씬 더 많은 코어들이 프로세서들 내에 존재할 수 있지만, 도 7에 도시된 바와 같이, 프로세서들(570 및 580) 각각은 제1 및 제2 프로세서 코어(즉, 프로세서 코어들(574a 및 574b) 및 프로세서 코어들(584a 및 584b))를 포함하는 멀티코어 프로세서들일 수 있다. 코어들 각각은 위에서 설명된 바와 같이 다양한 레지던시 및 시스템 카운터들을 포함할 수 있다.
계속하여 도 7을 참조하면, 제1 프로세서(570)는 메모리 제어기 허브(MCH)(572) 및 점-대-점(P-P) 인터페이스(576 및 578)를 더 포함한다. 마찬가지로, 제2 프로세서(580)는 MCH(582) 및 P-P 인터페이스(586 및 588)를 포함한다. 도 7에 도시된 바와 같이, MCH(572 및 582)는 프로세서들을 각각의 메모리들, 즉 메모리(532) 및 메모리(534)에 연결하며, 이들은 각각의 프로세서들에 로컬로 부착되어 있는 메인 메모리(예를 들어, 동적 랜덤 액세스 메모리(DRAM))의 일부분일 수 있다. 제1 프로세서(570) 및 제2 프로세서(580)는 각각 P-P 상호접속들(552 및 554)을 통해 칩셋(590)에 연결될 수 있다. 도 7에 도시된 바와 같이, 칩셋(590)은 P-P 인터페이스들(594 및 598)을 포함한다.
또한, 칩셋(590)은 P-P 상호접속(539)에 의해 고성능 그래픽 엔진(538)에 칩셋(590)을 연결하는 인터페이스(592)를 포함한다. 결국, 칩셋(590)은 인터페이스(596)를 통해 제1 버스(516)에 연결될 수 있다. 도 7에 도시된 바와 같이, 다양한 입/출력(I/O) 디바이스들(514)은 제1 버스(516)를 제2 버스(520)에 연결하는 버스 브리지(518)와 함께 제1 버스(516)에 연결될 수 있다. 예를 들어, 키보드/마우스(522), 통신 디바이스들(526), 및, 예를 들어, 본 발명의 일 실시예에 따른 전력 프로파일링을 수행하기 위한 코드(530)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 디바이스와 같은 데이터 저장 유닛(528)을 포함하는 다양한 디바이스들이 제2 버스(520)에 연결될 수 있다. 추가로, 오디오 I/O(524)가 제2 버스(520)에 연결될 수 있다.
실시예들은 코드로 구현될 수 있고, 명령어들을 수행하도록 시스템을 프로그래밍하는 데에 이용될 수 있는 명령어들이 저장되어 있는 저장 매체 상에 저장될 수 있다. 저장 매체는 플로피 디스크, 광학 디스크, 광학 디스크, 고체 상태 드라이브(SSD), 컴팩트 디스크 판독 전용 메모리(CD-ROM), 재기입가능한 컴팩트 디스크(CD-RW) 및 자기 광학 디스크를 포함하는 디스크와 같은 임의의 유형의 비-일시적(non-transitory) 저장 매체, 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM)와 같은 랜덤 액세스 메모리(RAM), 정적 랜덤 액세스 메모리(SRAM), 소거가능하고 프로그래밍가능한 판독 전용 메모리(EPROM), 플래시 메모리, 전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(EEPROM), 자기 또는 광학 카드와 같은 반도체 디바이스들, 또는 전자 명령어를 저장하는 데에 적합한 임의의 다른 유형의 매체를 포함할 수 있지만, 이에 한정되지는 않는다.
본 발명은 제한된 수의 실시예와 관련하여 설명되었지만, 당업자는 다수의 수정 및 그로부터의 변형을 인정할 것이다. 첨부된 청구항들은 그러한 수정들 및 변형들 전부를 본 발명의 진정한 취지 및 범위 내에 속하는 것으로서 커버하도록 의도된다.

Claims (20)

  1. 시스템의 컴포넌트 내에서 전력 상태 전이 이벤트가 발생할 때 호출될 전력 프로파일러를 등록하는 단계;
    상기 전력 상태 전이 이벤트에 관련된 정보를 저장하기 위해 버퍼를 할당하는 단계; 및
    상기 전력 상태 전이 이벤트의 발생 시에, 시스템 카운터 값, 및 상기 컴포넌트의 하나 이상의 저전력 상태 각각에 대한 카운터 값을 판독하고, 상기 시스템 카운터 값 및 상기 하나 이상의 카운터 값을 상기 버퍼에 기입하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 인터럽트 또는 타이머 만료의 발생 없이 상기 시스템 카운터 값 및 상기 복수의 카운터 값을 판독하는 단계를 더 포함하는 방법.
  3. 제2항에 있어서, 상기 시스템 카운터 값 및 상기 복수의 카운터 값을 판독하기 위해, 제어를, 운영 체제(OS)로부터 상기 전력 프로파일러의 디바이스 드라이버의 수집 함수(collection function)로 패스하는 단계를 더 포함하는 방법.
  4. 제3항에 있어서, 상기 OS의 추적점(tracepoint)에서 상기 수집 함수에 호출을 삽입하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서, 복수의 전력 상태 전이 이벤트 각각에 대해 상기 시스템 카운터 값 및 상기 복수의 카운터 값을 판독하고, 상기 전력 상태 전이 이벤트들 각각에 대해 상기 시스템 카운터 값 및 상기 복수의 카운터 값을 상기 버퍼에 기입하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 제1 및 제2 전력 상태 전이 이벤트에서 판독된 상기 시스템 카운터 값에 기초하여 상기 제1 및 제2 전력 상태 전이 이벤트 간의 경과 시간을 결정하고, 상기 제1 및 제2 전력 상태 전이 이벤트에서 판독된 상기 복수의 카운터 값에 기초하여 상기 제1 전력 상태 전이 이벤트 후에 진입된 저전력 상태의 유형 및 지속시간을 결정하는 단계를 더 포함하는 방법.
  7. 제6항에 있어서, 상기 제1 및 제2 전력 상태 전이 이벤트에서 판독된 상기 시스템 카운터 값 사이의 차이를 결정하는 단계를 더 포함하는 방법.
  8. 제6항에 있어서, 상기 제1 전력 상태 전이 이벤트를 요청한 운영 체제에 상기 지속시간 및 저전력 상태 유형을 포함하는 정보를 제공하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서, 상기 운영 체제의 행동을 수정하는 단계를 더 포함하는데, 여기서, 상기 운영 체제는 상기 제1 전력 상태 전이 이벤트가 상이한 유형이도록 요청하고, 상기 컴포넌트는 상기 저전력 상태 유형에 대응하는 상이한 저전력 상태에 대한 상기 요청을 오버라이드하는(overriding) 방법.
  10. 제6항에 있어서, 상기 경과 시간, 상기 지속시간 및 상기 저전력 상태 유형을 테이블에 기록하는 단계를 더 포함하는 방법.
  11. 실행 시에 시스템으로 하여금,
    멀티코어 프로세서의 코어에 대한 제1 방향의 복수의 전력 상태 전이 이벤트 각각의 발생 시에, 타이머의 만료 또는 인터럽트의 트리거 없이, 상기 코어의 시스템 카운터의 값 및 상기 코어의 복수의 저전력 카운터 각각의 값을 판독하게 하고,
    상기 전력 상태 전이 이벤트들 각각에 대한 상기 시스템 카운터 값 및 상기 복수의 저전력 카운터 값을 상기 멀티코어 프로세서의 저장소 내에 저장하게 하고,
    상기 복수의 전력 상태 전이 이벤트 후에, 저장된 시스템 카운터 값들 및 저장된 복수의 저전력 카운터 값을 이용하여 상기 멀티코어 프로세서의 전력 프로파일을 결정하기 위해 상기 저장소에 액세스하게 하는
    명령어들을 포함하는 머신-액세스가능 저장 매체를 포함하는 물품.
  12. 제11항에 있어서, 실행 시에 상기 시스템으로 하여금, 제1 및 제2 전력 상태 전이 이벤트에서 판독된 상기 시스템 카운터 값에 기초하여 상기 제1 및 제2 전력 상태 전이 이벤트 사이의 경과 시간을 결정하고, 상기 제1 및 제2 전력 상태 전이 이벤트에서 판독된 상기 복수의 저전력 카운터 값에 기초하여 상기 제1 전력 상태 전이 이벤트 후에 진입된 저전력 상태의 유형 및 지속시간을 결정하게 하는 명령어들을 더 포함하는 물품.
  13. 제12항에 있어서, 실행 시에 상기 시스템으로 하여금, 상기 경과 시간, 상기 지속시간 및 상기 저전력 상태 유형을 테이블에 기록하게 하고, 상기 제1 전력 상태 전이 이벤트를 요청한 운영 체제에 상기 지속시간 및 저전력 상태 유형을 포함하는 정보를 제공하게 하는 명령어들을 더 포함하는 물품.
  14. 제13항에 있어서, 실행 시에 상기 시스템으로 하여금, 상기 복수의 전력 상태 전이 이벤트 각각이 발생하여 상기 시스템 카운터 값 및 상기 복수의 저전력 카운터 값을 판독할 때, 통지 메커니즘으로부터 전력 프로파일러의 함수를 호출하게 하는 명령어들을 더 포함하는 물품.
  15. 제14항에 있어서, 실행 시에 상기 시스템으로 하여금, 상기 시스템 카운터 값들 및 상기 복수의 저전력 카운터 값을 저장하기 위한 버퍼를 할당하게 하는 명령어들을 더 포함하는 물품.
  16. 제11항에 있어서, 실행 시에 상기 시스템으로 하여금, 상기 시스템 카운터 값 및 상기 복수의 저전력 카운터 값을 판독하기 위해, 제어를, 운영 체제로부터 전력 프로파일러의 디바이스 드라이버의 수집 함수로 패스하게 하는 명령어들을 더 포함하는 물품.
  17. 복수의 코어를 포함하는 멀티코어 프로세서 - 각각의 코어는 프론트엔드 로직, 아웃-오브-오더 로직(out-of-order logic), 및 백엔드 로직, 사이클들의 카운트를 저장하기 위한 타임스탬프 카운터, 및 복수의 저전력 상태 카운터를 포함하고, 상기 복수의 저전력 상태 카운터 각각은 상기 코어가 대응 저전력 상태에 있는 사이클들을 카운트하는 것임 - ; 및
    상기 멀티코어 프로세서의 하나 이상의 저전력 상태 각각에 대해 상기 타임스탬프 카운터 및 상기 복수의 저전력 상태 카운터를 판독하고, 타임스탬프 카운터 값 및 복수의 저전력 상태 카운터 값을 버퍼에 기입하는 전력 프로파일러
    를 포함하는 시스템.
  18. 제17항에 있어서, 상기 전력 프로파일러는 제1 방향의 연속적인 다수의 전력 상태 전이 이벤트에 대해 상기 타임스탬프 카운터 및 상기 복수의 저전력 상태 카운터를 판독하는 것인 시스템.
  19. 제18항에 있어서, 상기 전력 프로파일러는 타이머의 만료 또는 인터럽트의 트리거 없이, 상기 타임스탬프 카운터 및 상기 복수의 저전력 상태 카운터를 판독하는 것인 시스템.
  20. 제17항에 있어서, 상기 전력 프로파일러는 운영 체제의 통지 메커니즘에 의해 호출되는 수집 함수를 포함하고, 상기 통지 메커니즘은 상기 하나 이상의 저전력 상태 각각으로의 전력 상태 전이 이벤트 동안 실행되는 시스템.
KR1020137025178A 2011-03-24 2011-12-30 낮은 오버헤드를 갖는 전력 프로파일 정보의 획득 KR101496077B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/070,700 2011-03-24
US13/070,700 US8949637B2 (en) 2011-03-24 2011-03-24 Obtaining power profile information with low overhead
PCT/US2011/068006 WO2012128817A2 (en) 2011-03-24 2011-12-30 Obtaining power profile information with low overhead

Publications (2)

Publication Number Publication Date
KR20130126717A true KR20130126717A (ko) 2013-11-20
KR101496077B1 KR101496077B1 (ko) 2015-02-25

Family

ID=46878354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137025178A KR101496077B1 (ko) 2011-03-24 2011-12-30 낮은 오버헤드를 갖는 전력 프로파일 정보의 획득

Country Status (7)

Country Link
US (1) US8949637B2 (ko)
EP (1) EP2689316A4 (ko)
JP (1) JP5615990B2 (ko)
KR (1) KR101496077B1 (ko)
CN (1) CN103443737B (ko)
TW (1) TWI550507B (ko)
WO (1) WO2012128817A2 (ko)

Families Citing this family (126)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9069555B2 (en) 2011-03-21 2015-06-30 Intel Corporation Managing power consumption in a multi-core processor
US8793515B2 (en) 2011-06-27 2014-07-29 Intel Corporation Increasing power efficiency of turbo mode operation in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9052901B2 (en) 2011-12-14 2015-06-09 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including configurable maximum processor current
US9372524B2 (en) 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
WO2013137859A1 (en) 2012-03-13 2013-09-19 Intel Corporation Providing energy efficient turbo operation of a processor
CN104204825B (zh) 2012-03-30 2017-06-27 英特尔公司 动态测量处理器中的功耗
WO2013162589A1 (en) 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US9444328B2 (en) * 2012-06-26 2016-09-13 Intel Corporation Acoustic noise mitigation using periodicity disruption
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9063727B2 (en) 2012-08-31 2015-06-23 Intel Corporation Performing cross-domain thermal control in a processor
US9575543B2 (en) 2012-11-27 2017-02-21 Intel Corporation Providing an inter-arrival access timer in a processor
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
US9405351B2 (en) 2012-12-17 2016-08-02 Intel Corporation Performing frequency coordination in a multiprocessor system
US9292468B2 (en) 2012-12-17 2016-03-22 Intel Corporation Performing frequency coordination in a multiprocessor system based on response timing optimization
US9075556B2 (en) 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9235252B2 (en) 2012-12-21 2016-01-12 Intel Corporation Dynamic balancing of power across a plurality of processor domains according to power policy control bias
US20140229754A1 (en) * 2013-02-11 2014-08-14 Nvidia Corporation Power telemetry remote monitoring
US9335803B2 (en) 2013-02-15 2016-05-10 Intel Corporation Calculating a dynamically changeable maximum operating voltage value for a processor based on a different polynomial equation using a set of coefficient values and a number of current active cores
JP6054203B2 (ja) 2013-02-28 2016-12-27 株式会社東芝 情報処理装置、デバイス制御方法及びプログラム
US9367114B2 (en) 2013-03-11 2016-06-14 Intel Corporation Controlling operating voltage of a processor
US9690353B2 (en) * 2013-03-13 2017-06-27 Intel Corporation System and method for initiating a reduced power mode for one or more functional blocks of a processor based on various types of mode request
US9395784B2 (en) 2013-04-25 2016-07-19 Intel Corporation Independently controlling frequency of plurality of power domains in a processor system
US9377841B2 (en) 2013-05-08 2016-06-28 Intel Corporation Adaptively limiting a maximum operating frequency in a multicore processor
US9823719B2 (en) 2013-05-31 2017-11-21 Intel Corporation Controlling power delivery to a processor via a bypass
US9471088B2 (en) 2013-06-25 2016-10-18 Intel Corporation Restricting clock signal delivery in a processor
US9348401B2 (en) 2013-06-25 2016-05-24 Intel Corporation Mapping a performance request to an operating frequency in a processor
US9348407B2 (en) 2013-06-27 2016-05-24 Intel Corporation Method and apparatus for atomic frequency and voltage changes
US9377836B2 (en) 2013-07-26 2016-06-28 Intel Corporation Restricting clock signal delivery based on activity in a processor
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
US10386900B2 (en) 2013-09-24 2019-08-20 Intel Corporation Thread aware power management
US9405345B2 (en) 2013-09-27 2016-08-02 Intel Corporation Constraining processor operation based on power envelope information
US9594560B2 (en) 2013-09-27 2017-03-14 Intel Corporation Estimating scalability value for a specific domain of a multicore processor based on active state residency of the domain, stall duration of the domain, memory bandwidth of the domain, and a plurality of coefficients based on a workload to execute on the domain
US9934119B2 (en) 2013-10-22 2018-04-03 Cisco Technology, Inc. Rogue hardware detection through power monitoring
US8843700B1 (en) * 2013-11-29 2014-09-23 NXGN Data, Inc. Power efficient method for cold storage data retention management
US9494998B2 (en) 2013-12-17 2016-11-15 Intel Corporation Rescheduling workloads to enforce and maintain a duty cycle
US9459689B2 (en) 2013-12-23 2016-10-04 Intel Corporation Dyanamically adapting a voltage of a clock generation circuit
US9323525B2 (en) 2014-02-26 2016-04-26 Intel Corporation Monitoring vector lane duty cycle for dynamic optimization
US9665153B2 (en) 2014-03-21 2017-05-30 Intel Corporation Selecting a low power state based on cache flush latency determination
US10108454B2 (en) 2014-03-21 2018-10-23 Intel Corporation Managing dynamic capacitance using code scheduling
US9395788B2 (en) 2014-03-28 2016-07-19 Intel Corporation Power state transition analysis
US9760158B2 (en) 2014-06-06 2017-09-12 Intel Corporation Forcing a processor into a low power state
US10417149B2 (en) 2014-06-06 2019-09-17 Intel Corporation Self-aligning a processor duty cycle with interrupts
US9606602B2 (en) 2014-06-30 2017-03-28 Intel Corporation Method and apparatus to prevent voltage droop in a computer
US9513689B2 (en) 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9575537B2 (en) 2014-07-25 2017-02-21 Intel Corporation Adaptive algorithm for thermal throttling of multi-core processors with non-homogeneous performance states
US9760136B2 (en) 2014-08-15 2017-09-12 Intel Corporation Controlling temperature of a system memory
US9671853B2 (en) 2014-09-12 2017-06-06 Intel Corporation Processor operating by selecting smaller of requested frequency and an energy performance gain (EPG) frequency
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
US9977477B2 (en) 2014-09-26 2018-05-22 Intel Corporation Adapting operating parameters of an input/output (IO) interface circuit of a processor
US9684360B2 (en) 2014-10-30 2017-06-20 Intel Corporation Dynamically controlling power management of an on-die memory of a processor
US9703358B2 (en) 2014-11-24 2017-07-11 Intel Corporation Controlling turbo mode frequency operation in a processor
US9710043B2 (en) 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US20160147280A1 (en) 2014-11-26 2016-05-26 Tessil Thomas Controlling average power limits of a processor
US10048744B2 (en) 2014-11-26 2018-08-14 Intel Corporation Apparatus and method for thermal management in a multi-chip package
US10877530B2 (en) 2014-12-23 2020-12-29 Intel Corporation Apparatus and method to provide a thermal parameter report for a multi-chip package
US20160224098A1 (en) 2015-01-30 2016-08-04 Alexander Gendler Communicating via a mailbox interface of a processor
US9639134B2 (en) 2015-02-05 2017-05-02 Intel Corporation Method and apparatus to provide telemetry data to a power controller of a processor
US10234930B2 (en) 2015-02-13 2019-03-19 Intel Corporation Performing power management in a multicore processor
US9910481B2 (en) 2015-02-13 2018-03-06 Intel Corporation Performing power management in a multicore processor
US9874922B2 (en) 2015-02-17 2018-01-23 Intel Corporation Performing dynamic power control of platform devices
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US9842082B2 (en) 2015-02-27 2017-12-12 Intel Corporation Dynamically updating logical identifiers of cores of a processor
US9710054B2 (en) 2015-02-28 2017-07-18 Intel Corporation Programmable power management agent
US9626227B2 (en) 2015-03-27 2017-04-18 Intel Corporation Technologies for offloading and on-loading data for processor/coprocessor arrangements
US9760160B2 (en) 2015-05-27 2017-09-12 Intel Corporation Controlling performance states of processing engines of a processor
US9710041B2 (en) 2015-07-29 2017-07-18 Intel Corporation Masking a power state of a core of a processor
US10001822B2 (en) 2015-09-22 2018-06-19 Intel Corporation Integrating a power arbiter in a processor
US9983644B2 (en) 2015-11-10 2018-05-29 Intel Corporation Dynamically updating at least one power management operational parameter pertaining to a turbo mode of a processor for increased performance
US9910470B2 (en) 2015-12-16 2018-03-06 Intel Corporation Controlling telemetry data communication in a processor
US10146286B2 (en) 2016-01-14 2018-12-04 Intel Corporation Dynamically updating a power management policy of a processor
US10289188B2 (en) 2016-06-21 2019-05-14 Intel Corporation Processor having concurrent core and fabric exit from a low power state
US10324519B2 (en) 2016-06-23 2019-06-18 Intel Corporation Controlling forced idle state operation in a processor
US10281975B2 (en) 2016-06-23 2019-05-07 Intel Corporation Processor having accelerated user responsiveness in constrained environment
US10379596B2 (en) 2016-08-03 2019-08-13 Intel Corporation Providing an interface for demotion control information in a processor
US10423206B2 (en) 2016-08-31 2019-09-24 Intel Corporation Processor to pre-empt voltage ramps for exit latency reductions
US10234920B2 (en) 2016-08-31 2019-03-19 Intel Corporation Controlling current consumption of a processor based at least in part on platform capacitance
US10379904B2 (en) 2016-08-31 2019-08-13 Intel Corporation Controlling a performance state of a processor using a combination of package and thread hint information
US10168758B2 (en) 2016-09-29 2019-01-01 Intel Corporation Techniques to enable communication between a processor and voltage regulator
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
US10429919B2 (en) 2017-06-28 2019-10-01 Intel Corporation System, apparatus and method for loose lock-step redundancy power management
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
EP3673344A4 (en) 2017-08-23 2021-04-21 INTEL Corporation SYSTEM, DEVICE AND METHOD FOR ADAPTIVE OPERATING VOLTAGE IN A FIELD-PROGRAMMABLE GATE ARRAY (FPGA)
US10657059B2 (en) 2017-09-12 2020-05-19 International Business Machines Corporation Controlling a rate of prefetching based on bus bandwidth
US10620266B2 (en) 2017-11-29 2020-04-14 Intel Corporation System, apparatus and method for in-field self testing in a diagnostic sleep state
KR20230152180A (ko) 2017-12-10 2023-11-02 매직 립, 인코포레이티드 광학 도파관들 상의 반사―방지 코팅들
CA3086206A1 (en) 2017-12-20 2019-06-27 Magic Leap, Inc. Insert for augmented reality viewing device
US10620682B2 (en) 2017-12-21 2020-04-14 Intel Corporation System, apparatus and method for processor-external override of hardware performance state control of a processor
US10739843B2 (en) * 2018-02-21 2020-08-11 Dell Products L.P. System and method of monitoring device states
EP3766039A4 (en) 2018-03-15 2021-04-07 Magic Leap, Inc. IMAGE CORRECTION BY DEFORMING COMPONENTS OF A VIEWING DEVICE
US10620969B2 (en) 2018-03-27 2020-04-14 Intel Corporation System, apparatus and method for providing hardware feedback information in a processor
US10739844B2 (en) 2018-05-02 2020-08-11 Intel Corporation System, apparatus and method for optimized throttling of a processor
CN112236713B (zh) 2018-05-30 2023-01-24 奇跃公司 紧凑的可变聚焦配置
WO2019231850A1 (en) 2018-05-31 2019-12-05 Magic Leap, Inc. Radar head pose localization
US10825424B2 (en) 2018-06-05 2020-11-03 Magic Leap, Inc. Homography transformation matrices based temperature calibration of a viewing system
US11092812B2 (en) 2018-06-08 2021-08-17 Magic Leap, Inc. Augmented reality viewer with automated surface selection placement and content orientation placement
US10955899B2 (en) 2018-06-20 2021-03-23 Intel Corporation System, apparatus and method for responsive autonomous hardware performance state control of a processor
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
WO2020010226A1 (en) 2018-07-03 2020-01-09 Magic Leap, Inc. Systems and methods for virtual and augmented reality
WO2020023545A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
WO2020023543A1 (en) 2018-07-24 2020-01-30 Magic Leap, Inc. Viewing device with dust seal integration
WO2020028834A1 (en) 2018-08-02 2020-02-06 Magic Leap, Inc. A viewing system with interpupillary distance compensation based on head motion
CN112789544B (zh) 2018-08-03 2023-06-30 奇跃公司 图腾在用户交互系统中的融合姿势的基于未融合姿势的漂移校正
US10976801B2 (en) 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US10860083B2 (en) 2018-09-26 2020-12-08 Intel Corporation System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN117111304A (zh) 2018-11-16 2023-11-24 奇跃公司 用于保持图像清晰度的图像尺寸触发的澄清
US11656676B2 (en) 2018-12-12 2023-05-23 Intel Corporation System, apparatus and method for dynamic thermal distribution of a system on chip
JP2022519292A (ja) * 2019-02-06 2022-03-22 マジック リープ, インコーポレイテッド 複数のプロセッサによって発生される総熱を限定するための標的意図ベースのクロック速度の決定および調節
JP2022523852A (ja) 2019-03-12 2022-04-26 マジック リープ, インコーポレイテッド 第1および第2の拡張現実ビューア間でのローカルコンテンツの位置合わせ
US11256657B2 (en) 2019-03-26 2022-02-22 Intel Corporation System, apparatus and method for adaptive interconnect routing
US11445232B2 (en) 2019-05-01 2022-09-13 Magic Leap, Inc. Content provisioning system and method
US11442529B2 (en) 2019-05-15 2022-09-13 Intel Corporation System, apparatus and method for dynamically controlling current consumption of processing circuits of a processor
WO2021021670A1 (en) 2019-07-26 2021-02-04 Magic Leap, Inc. Systems and methods for augmented reality
US11698812B2 (en) 2019-08-29 2023-07-11 Intel Corporation System, apparatus and method for providing hardware state feedback to an operating system in a heterogeneous processor
WO2021097323A1 (en) 2019-11-15 2021-05-20 Magic Leap, Inc. A viewing system for use in a surgical environment
US11366506B2 (en) 2019-11-22 2022-06-21 Intel Corporation System, apparatus and method for globally aware reactive local power control in a processor
US11132201B2 (en) 2019-12-23 2021-09-28 Intel Corporation System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit
US11422173B2 (en) * 2020-05-09 2022-08-23 Intel Corporation Method and apparatus for accurate measurement of platform power
US11921564B2 (en) 2022-02-28 2024-03-05 Intel Corporation Saving and restoring configuration and status information with reduced latency

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000039937A (ja) * 1998-07-22 2000-02-08 Toshiba Corp コンピュータシステムおよびそのパワーセーブ制御方法
US6792392B1 (en) * 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US7903116B1 (en) 2003-10-27 2011-03-08 Nvidia Corporation Method, apparatus, and system for adaptive performance level management of a graphics system
JP2005352672A (ja) * 2004-06-09 2005-12-22 Kyocera Mita Corp 電気機器
US7543161B2 (en) 2004-09-30 2009-06-02 International Business Machines Corporation Method and apparatus for tracking variable speed microprocessor performance caused by power management in a logically partitioned data processing system
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US7490254B2 (en) 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) * 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US7689838B2 (en) 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US20070198864A1 (en) 2006-02-21 2007-08-23 Toshiba America Electronic Components Systems and methods for determining and using power profiles for software programs executing on data processors
US7644293B2 (en) 2006-06-29 2010-01-05 Intel Corporation Method and apparatus for dynamically controlling power management in a distributed system
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US8117478B2 (en) 2006-12-29 2012-02-14 Intel Corporation Optimizing power usage by processor cores based on architectural events
US20090007108A1 (en) 2007-06-29 2009-01-01 Hanebutte Ulf R Arrangements for hardware and software resource monitoring
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US8127153B2 (en) * 2008-07-29 2012-02-28 Oracle America, Inc. Memory power profiling
US8135970B2 (en) * 2009-03-06 2012-03-13 Via Technologies, Inc. Microprocessor that performs adaptive power throttling
US20110106282A1 (en) 2009-07-23 2011-05-05 Corevalus Systems, Llc Audio Processing Utilizing a Dedicated CPU Core and a Real Time OS
US8321705B2 (en) 2009-10-13 2012-11-27 Advanced Micro Devices, Inc. Dynamic table look-up based voltage regulator control

Also Published As

Publication number Publication date
JP2014509032A (ja) 2014-04-10
WO2012128817A3 (en) 2013-01-31
JP5615990B2 (ja) 2014-10-29
KR101496077B1 (ko) 2015-02-25
WO2012128817A2 (en) 2012-09-27
US20120246506A1 (en) 2012-09-27
EP2689316A4 (en) 2014-12-03
EP2689316A2 (en) 2014-01-29
CN103443737A (zh) 2013-12-11
TWI550507B (zh) 2016-09-21
TW201239753A (en) 2012-10-01
CN103443737B (zh) 2017-03-22
US8949637B2 (en) 2015-02-03

Similar Documents

Publication Publication Date Title
KR101496077B1 (ko) 낮은 오버헤드를 갖는 전력 프로파일 정보의 획득
Bailey et al. Adaptive configuration selection for power-constrained heterogeneous systems
Haban et al. Application of real-time monitoring to scheduling tasks with random execution times
Eyerman et al. A counter architecture for online DVFS profitability estimation
US7426731B2 (en) Determining processor usage by a thread
EP1358557B1 (en) Operating system-independent method and system of determining cpu utilization
EP2513752B1 (en) A counter architecture for online dvfs profitability estimation
US20070079294A1 (en) Profiling using a user-level control mechanism
WO2011025720A1 (en) Optimized thread scheduling via hardware performance monitoring
US7694164B2 (en) Operating system-independent method and system of determining CPU utilization
US20170364136A1 (en) Wake Lock Aware System Wide Job Scheduling for Energy Efficiency on Mobile Devices
Imes et al. A portable interface for runtime energy monitoring
KR101892273B1 (ko) 스레드 프로그레스 트래킹 방법 및 장치
US9323640B2 (en) Method and system for measuring the performance of a computer system on a per logical partition basis
JP2004192052A (ja) ソフトウェア処理方法およびソフトウェア処理システム
Jing Performance isolation for mixed criticality real-time system on multicore with xen hypervisor
Larysch Fine-grained estimation of memory bandwidth utilization
Luque et al. Fair CPU time accounting in CMP+ SMT processors
Horstmann et al. Performance monitoring features in epos
US7707556B1 (en) Method and system to measure system performance
Schedulers et al. Anomalies in Linux Processor Use
Werling Saving Power Without Sacrificing Performance on Asymmetric Multicore Processors
Bertout Measurement-Based Timing Analysis on Heterogeneous MPSoCs: A Practical Approach
Schmidt Achieving Optimal Throughput for Persistent Memory with Per-Process Accounting
Li et al. An implementation of analytical power model on integrated GPU

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: 20180201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 6