KR20140117551A - 성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치 - Google Patents

성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치 Download PDF

Info

Publication number
KR20140117551A
KR20140117551A KR1020147022859A KR20147022859A KR20140117551A KR 20140117551 A KR20140117551 A KR 20140117551A KR 1020147022859 A KR1020147022859 A KR 1020147022859A KR 20147022859 A KR20147022859 A KR 20147022859A KR 20140117551 A KR20140117551 A KR 20140117551A
Authority
KR
South Korea
Prior art keywords
sense
processors
voltage
energy consumption
sensing
Prior art date
Application number
KR1020147022859A
Other languages
English (en)
Inventor
제랄드 폴 미찰락
프레드릭 조셉 본템스
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20140117551A publication Critical patent/KR20140117551A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • 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)
  • Software Systems (AREA)
  • Power Sources (AREA)
  • Measurement Of Current Or Voltage (AREA)
  • Analogue/Digital Conversion (AREA)

Abstract

멀티플렉서는 감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택한다. 감지 회로들 각각은 서브시스템에서의 프로세서들에 전력을 공급하는 전압 조절기들 중 대응하는 하나에 위치된다. 전압 조절기들 중 대응하는 하나는, 프로세서들 중 하나와 연관된다. 아날로그-디지털 컨버터는, 복수의 감지 출력들 중 선택된 하나를, 전압 조절기들 중 대응하는 하나와 연관된, 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환한다. 에너지 소모는 동적으로 발생된 코드를 디스패칭하기 위해 이용된다.

Description

성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치{EFFICIENT CODE DISPATCH BASED ON PERFORMANCE AND ENERGY CONSUMPTION}
현재 개시된 실시예들은 코드 할당들의 분야에 관한 것이고, 더욱 구체적으로는 코드 디스패치(code dispatch)에 관한 것이다.
최근에, 다수의 프로세서 환경들을 타겟으로 하는 이식가능한(portable) 코드 기술들이 성능 및 대중성 측면에 있어서 발달되어 왔다. 코드 이식성(code portability)의 예시들은, 가상 머신들, 동적 이진 변환기들 및 멀티-프로세서 언어들을 포함한다. 다양한 기법들 중에서, 소프트웨어 실행 환경에서의 코드의 할당은 설계자들에게 도전이 되어 왔다. 문제는, 시스템-온-칩(SoC) 아키텍쳐 상의 다수의 프로세서들의 존재로 인해 대개 어렵다는 것이다. 다수의 프로세서들은 통상적으로, 시스템에 다양한 기능들을 제공하기 위해 특정 기능들 또는 일 세트의 특수화된 기능들을 수행하도록 최적으로 설계된 아키텍쳐들을 갖는다. 예를 들어, 모바일 디바이스는, 게임 애플리케이션들을 지원하기 위한 그래픽 기능, 비디오 또는 이미지들을 디스플레이하기 위한 이미징 기능, 뮤직 또는 스피치 프로세싱을 제공하기 위한 오디오 기능 등을 포함할 수 있다. 분명한 요건들을 갖는 잘 정의된 애플리케이션에 대해, 실행을 위한 적절한 프로세서를 선택하는 것은 비교적 어렵지 않다. 그러나, 다양한 아키텍쳐들을 포함하는 애플리케이션에서 특징들이 존재하는 경우, 실행에 적합한 프로세서를 결정하는 것은 종종 어렵다. 문제는 동적으로 발생된 코드들을 갖는 실시간 애플리케이션들에 대해서는 특히 곤란하다. 수많은 진보된 플랫폼들, 예를 들어, 모바일 디바이스들의 경우, 다양한 프로세서들의 유용성은, 프로세서들의 에너지 소모를 최소화시키면서 멀티프로세서 환경에서의 적절한 프로세서에 동적으로 발생된 코드를 효율적으로 디스패칭하는데 있어서 도전적인 설계 문제를 생성하였다.
본 발명의 예시적인 실시예들은, 효율적인 코드 디스패칭을 위한 시스템들 및 방법에 관한 것이다. 멀티플렉서는 감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택한다. 감지 회로들 각각은 서브시스템에서의 프로세서들에 전력을 공급하는 전압 조절기들 중 대응하는 하나에 위치된다. 전압 조절기들 중 대응하는 하나는, 프로세서들 중 하나와 연관된다. 아날로그-디지털 컨버터는, 복수의 감지 출력들 중 선택된 하나를, 전압 조절기들 중 대응하는 하나와 연관된, 프로세서들 중 하나의 에너지 소비를 나타내는 디지털 파라미터로 변환한다. 에너지 소모는 동적으로 발생된 코드를 디스패칭하기 위해 이용된다.
첨부 도면들은, 본 발명의 실시예들의 상세한 설명을 돕도록 제시되고, 실시예들의 제한이 아닌 오직 실시예들의 예시를 위해서 단독으로 제공된다.
도 1은, 본 발명의 일 실시예가 실행될 수 있는 환경을 예시하는 도면이다.
도 2는, 일 실시예에 따른 서브시스템을 예시하는 도면이다.
도 3은, 일 실시예에 따른 감지 회로를 예시하는 도면이다.
도 4는, 일 실시예에 따른 컨트롤러를 예시하는 도면이다.
도 5는, 일 실시예에 따라 효율적인 코드 디스패칭을 수행하기 위한 프로세스를 예시하는 플로우차트이다.
도 6은, 일 실시예에 따라 복수의 감지 출력들 중 하나를 선택하는 것을 수행하기 위한 프로세스를 예시하는 플로우차트이다.
도 7은, 일 실시예에 따라 효율적인 코드 디스패칭을 수행하기 위한 프로세스를 예시하는 플로우차트이다.
도 8은, 일 실시예에 따라 에너지 소모를 획득하는 것을 수행하기 위한 프로세스를 예시하는 플로우차트이다.
도 9는, 일 실시예에 따라 컨트롤러를 예시하는 블록도이다.
본 발명의 양상들은, 본 발명의 특정 실시예들에 관련된 후술하는 상세한 설명 및 관련 도면들에 개시된다. 대안적인 실시예들이 본 발명의 범위를 벗어나지 않고 고안될 수 있다. 추가적으로, 본 발명의 잘 알려진 엘리먼트들이 상세하게 설명되지 않을 것이며 또는 본 발명의 관련 세부사항들을 모호하게 하지 않기 위해 생략될 것이다.
실시예들의 하나의 개시된 특징은 플로우차트, 흐름도, 구조도, 또는 블록도로서 대개 도시된 프로세스로서 설명될 수 있다. 플로우차트는 동작들을 순차적인 프로세스로서 설명할 수 있지만, 수많은 동작들이 병렬로 또는 동시에 수행될 수 있다. 이에 더해, 동작들의 순서는 재-배열될 수 있다. 프로세스는, 자신의 동작들이 완료될 때 종결된다. 프로세스는, 방법, 프로그램, 절차, 제조 또는 제작 방법 등에 대응할 수 있다. 일 실시예는 물리적 구조를 설명하는 개략적인 도면에 의해 설명될 수 있다. 개략적인 도면은, 기본적인 개념을 예시하고, 일정한 비례로 스케일링되지 않을 수도 있고 또는 정확한 비율들로 구조물을 도시하지 않을 수도 있음을 이해해야 한다.
본 발명의 실시예들은, 모바일 디바이스들 상에 이식가능한(portable) 그리고 동적으로 발생된 코드에 대한 성능 및 에너지 소모에 기초하여 효율적인 코드 디스패칭을 위한 시스템들 및 방법에 관한 것일 수 있다. 이 기법은, 시스템에서 다수의 프로세서들에 전력을 제공하는 다수의 전압 조절기들에 내재되는(built into) 집적된, 동적 전력 측정 성능을 제공한다. 전압 조절기들 각각은 감지 회로에 의해 강화된다. 멀티플렉서는 감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택한다. 감지 회로들 각각은 서브시스템에서 프로세서들에 전력을 공급하는 전압 조절기들 중 대응하는 하나에 위치된다. 전압 조절기들 중 대응하는 하나는 프로세서들 중 하나와 연관된다. 아날로그-디지털 컨버터는, 복수의 감지 출력들 중 선택된 하나를, 전압 조절기들 중 대응하는 하나와 연관된, 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환한다. 감지 회로들에 의해 제공된 전압 및/또는 전류의 측정들을 이용하면, 동적으로 발생된 코드를 실행할 때 프로세서들 각각에 의한 에너지 소모가 계산될 수 있다. 이러한 정보로부터, 효율적인 코드 디스패칭을 위해 최적화 기준 또는 기준들을 충족시키기 위해 코드가 프로세서에 할당될 수 있다.
도 1은, 본 발명의 일 실시예가 실행될 수 있는 환경(10)을 예시하는 도면이다. 환경(10)은 하드웨어 및 소프트웨어 컴포넌트들 둘 다를 포함할 수 있다. 환경(10)은 코드(20) 및 플랫폼(30)을 포함할 수 있다. 환경(10)은 도 1에 도시된 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있다.
코드(20)는, 애플리케이션, 프로그램, 일 세트의 명령들, 또는 소프트웨어 모듈일 수 있다. 코드는, 적절한 인터페이스 및 소프트웨어 지원을 통해 임의의 환경에서 실행될 수 있는 것에 이식가능할 수 있다. 일 실시예에서, 네트워크(예를 들어, 인터넷)으로부터 다운로딩가능할 수 있다. 코드(20)는, 시스템 유틸리티, 엔터테인먼트 애플리케이션(예를 들어, 게임들), 미디어 애플리케이션(예를 들어, 오디오, 비디오, 이미징, 그래픽), 재정 애플리케이션(예를 들어, 주식), 뉴스 애플리케이션 등일 수 있다. 애플리케이션에 따라, 코드(20)의 실행이, 적합한 프로세서에 의해 실행되는 경우, 최적일 수 있고 또는 효율적일 수 있다. 예를 들어, 미디어 애플리케이션은 디지털 신호 프로세서(DSP)에 의해 가장 효율적으로 실행될 수 있고, 게임 애플리케이션은 그래픽 프로세싱 유닛(GPU) 프로세서에 의해 가장 적합하게 실행될 수 있다. 응답 시간이 사용자의 경험 또는 상호작용들에 비교가능한 실시간 애플리케이션들의 경우, 코드(20)가 적합한 프로세서에 의해 효율적으로 실행되는 것이 유용하다.
플랫폼(30)은 코드(20)를 실행하는 임의의 플랫폼을 나타낼 수 있다. 모바일 플랫폼, 데스크탑 플랫폼, 네트워크-집중 플랫폼, 등일 수 있다. 일 실시예에서, 플랫폼(30)은, 코드(20)를 포함하는 다양한 애플리케이션들을 실행하기 위해 다수의 프로세서들이 이용되는 멀티프로세서 플랫폼이다. 플랫폼(30)은, 타겟-내 컴파일러(40), 동적 이진 변환기(45), 디스패쳐(55), N개의 프로세서들(60k)(여기서, k=1, ..., N), N개의 전압 조절기들(70k)(여기서, k=1, ..., N), 및 감지 출력 수집기(80)를 포함할 수 있다. 플랫폼(30)은 전술한 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있다.
타겟-내 컴파일러(40)는 코드(20)를 컴파일링한다. 통상적으로, 이는 코드(20)의 소스 프로그램을 실행가능 코드로 변환한다. 동적 이진 변환기(45)는, 타겟-내 컴파일러(40)에 의해 컴파일링된 것으로서 실행가능 코드를, 구동 시간에 근본적인 아키텍쳐의 실행가능 코드로 변환하기 위한 프로그램 또는 모듈일 수 있다. 이는, 동적으로 발생된 코드(50)를 발생시킨다. 디스패쳐(55)는 동적으로 변환된 실행가능 코드(50)를 실행을 위해 할당된 프로세서로 디스패칭한다. 디스패쳐(55)는 감지 출력 수집기(80)에 의해 제공된 결과들을 동적으로 이용하여 자신의 기능을 수행한다.
프로세서들(60k){k=1, ..., N}(또한 601:N으로 표시됨)은 플랫폼(30)에 의해 활용된 임의의 프로세서들을 나타낸다. 이들은 범용 중앙 처리 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 디지털 신호 프로세서(DSP), 미디어 프로세서, 네트워크 프로세서, 저장 프로세서, 또는 특정 함수에 대해 최적화된 아키텍쳐를 갖는 임의의 프로세서를 포함할 수 있다. 전압 조절기들(70k){k=1, ..., N}(또한 701:N으로 표시됨)은 대응하는 프로세서들(60k){k=1, ..., N}에 조절된 전력을 제공한다. 일 실시예에서, 전압 조절기들(70k){k=1, ..., N} 각각은 대응하는 프로세서에 공급되는 감지 전압 또는 전류를 제공하기 위해 회로-내 감지 회로들을 통합한다. 감지 출력 수집기(80)는, 전압 조절기들(70k){k=1, ..., N}에서 감지 회로들에 의해 제공되는 것으로서 감지 출력들을 수집하고, 이러한 정보를 디스패쳐(55)에 공급한다.
도 2는, 일 실시예에 따른 서브시스템(200)을 예시하는 도면이다. 서브시스템(200)은 앞서 설명된 것과 같은 컴포넌트들을 포함할 수 있다. 이는, N개의 전압 조절기들(70k){k=1, ..., N} 및 감지 출력 수집기(80)를 포함할 수 있다. 통상적으로, N개의 전압 조절기들(701:N)은, 동일한 컴포넌트들, 또는 유사한 또는 동일한 기능들을 수행하는 컴포넌트들을 포함한다. 명료함을 위해, N개의 전압 조절기들(701:N) 중 오직 하나만이 설명될 것이고, 후술하는 설명은 아래첨자 k를 이용하며, 여기서 k=1,...,N이다.
전압 조절기(70k)는 서브시스템(200)에서의 대응하는 프로세서(60k)에 전력을 공급한다. 이는, 대응하는 프로세서(60k)에 조절된 공급 전압 또는 전력(235k)을 제공한다. 이는, 인덕터(220k) 및 커패시터(230k)를 포함하는 외부 회로를 가질 수 있다. 인덕터(220k) 및 커패시터(230k)는 출력 전압을 필터링하기 위한 필터를 형성한다. 인덕터(220k)의 인덕턴스 및 커패시터(230k)의 커패시턴스의 값들은 원하는 양의 필터링에 의존한다. 전압 조절기(70k)는 조절기 회로(212k) 및 감지 회로(214k)를 포함할 수 있다. 조절기 회로(212k)는 통상적인 조절기 회로 또는 기존의 조절기 회로를 나타낸다. 이는, 스위칭 전압 조절기 또는 선형 전압 조절기일 수 있다. 스위칭 전압 조절기는, 스텝-다운(예를 들어, 벅 컨버터(buck converter)) 스위칭 조절기, 또는 스텝-업(예를 들어, 벅-부스트 컨버터) 스위칭 조절기일 수 있다. 감지 회로(214k)는 감지 출력(218k)을 감지 출력 수집기(80)에 제공한다. 감지 회로들(214k){k=1, ..., N}(또한, 2141:N으로 표시됨)의 각각은 프로세서들(60k){k=1, ..., N} 중 하나와 연관된, 전압 조절기들(70k){k=1, ..., N} 중 대응하는 하나에 위치된다. 감지 출력(218k)은 측정되는 또는 감지되는 다수의 파라미터들을 나타내는 감지 신호 또는 다수의 신호들을 포함할 수 있다. 일 실시예에서, 감지 출력(218k)은 대응하는 프로세서(60k)에 공급되는 전압 및 전류를 각각 나타내는 전압 신호 및 전류 신호를 포함한다. 감지 회로(214k)는, 기존의 조절기 회로(212k)에 부가된 추가적인 회로 또는 부가물(add-on)이다. 통상적으로, 이는 조절기 회로(212k)에 대한 재-설계 또는 변형을 요구하지 않는다. 이에 더해, 이는 소형 컴포넌트들로 구성될 수 있다.
감지 출력 수집기(80)는, 감지 출력들(218k){k=1, ..., N}(또한, 2181:N으로 표시됨)을 수집하고, 그 결과들을 디스패쳐(55)(도 1)에 포워딩한다. 이는, 멀티플렉서(250), 아날로그-디지털 컨버터(ADC)(260), 인터페이스 로직 회로(270), 및 컨트롤러(280)를 포함할 수 있다. 감지 출력 수집기(80)는 전술한 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있다.
멀티플렉서(250)는, 감지 회로들(214k){k=1, ..., N}로부터 복수의 감지 출력들(218k){k=1, ..., N} 중 하나를 선택할 수 있다. 멀티플렉서(250)는, 컨트롤러(280)로부터의 선택기 제어 신호에 따라 감지 출력들(218k){k=1, ..., N} 중 하나를 ADC(260)에 전송하는 아날로그 데이터 선택기 또는 데이터 스티어링 회로일 수 있다. ADC(260)는, 복수의 감지 출력들(218k){k=1, ..., N} 중 선택된 하나를, 전압 조절기들(70k){k=1, ..., N} 중 대응하는 하나와 연관된, 프로세서들(60k){k=1, ..., N} 중 하나의 에너지 소모를 나타내는 디지털 파라미터(265)로 변환하기 위해 멀티플렉서(250)에 커플링된다. 디지털 파라미터는 선택된 감지 출력(218k)의 값을 나타내는 디지털 워드(digital word)일 수 있다. 워드 길이는 원하는 정확도에 따라 결정될 수 있다. 예를 들어, 이는, 8비트에서 16비트의 범위에 있을 수 있다. 인터페이스 로직 회로(270)는 병렬-직렬 컨버터, 레벨 컨버터, 또는 디지털 파라미터를 컨트롤러(280)와 호환가능한 양으로 변환하기 위한 임의의 다른 인터페이스 기능들을 포함할 수 있는 다른 디바이스들, 그리고 다른 통신 요건 및 다른 프로세싱 요건에 버스 인터페이스를 제공한다. 인터페이스 로직 회로(270)는 또한 적절한 동작 모드들에 있는 전압 조절기들(70k){k=1, ..., N}을 구성하기 위해 전압 조절기들(70k){k=1, ..., N}에 입력 또는 제어 신호들을 제공할 수 있다.
도 3은, 일 실시예에 따른 도 2에 도시된 감지 회로(214k)를 예시하는 도면이다. 감지 회로(214k)는 도 2에 도시된 임의의 감지 회로들(214k){k=1, ..., N}을 나타낼 수 있다. 감지 회로(214k)는 전압 감지 회로(310) 및 전류 감지 회로(320)를 포함할 수 있다. 감지 회로(214k)는 전술한 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있다.
전압 감지 회로(310)는 인덕터(220k)를 통해서 전압 조절기(70k)(도 2)의 조절된 전압 출력(235)을 감지할 수 있다. 이는, 전압 감지 출력(318)을 제공하기 위해 고정 이득 또는 프로그래머블 이득을 갖는 이득 또는 버퍼 증폭기를 포함할 수 있다.
전류 감지 회로(320)는 전압 조절기(70k)의 조절된 전압 출력(235)의 전류를 감지할 수 있다. 이는 전류 감지 출력(328)을 발생시킬 수 있다. 이는 수많은 방법들로 구현될 수 있다. 스위칭된 모드 전력 관리에서의 전류 감지의 경우, 이는: (1) 집적된 저역-통과 필터를 통한 인덕터 전압 강하 감지, (2) 외부 저역-통과 필터를 통한 인덕터 전압 강하 감지, 또는 (3) on 시간 동안 드레인-소스 전압의 통과 트랜지스터(예를 들어, 전계 효과 트랜지스터) 감지에 의해 구현될 수 있다. 선형의 낮은 드롭-아웃 조절기들에서의 전류 감지의 경우, 단편적인 전류 미러 회로에 의해 구현될 수 있다. 일 실시예에서, 저역-통과 필터(322) 및 증폭기(324)를 포함할 수 있다. 저역-통과 필터(322)는, 노이즈 또는 전류 스파이크들과 같은 고주파수 성분들을 제거하기 위해 인덕터(220k)에 걸친 전압 강하를 필터링한다. 저역-통과 필터(322)는 전압 조절기(70k) 내부에 또는 외부에 있을 수 있다. 증폭기(324)는 전류에 비례하는 양을 제공하기 위해 전압-전류 변환을 수행하는 버퍼 증폭기일 수 있다.
전압 감지 출력(318) 및 전류 감지 출력(328)은 멀티플렉서(250)로의 감지 출력(218k)을 형성한다. 요건들에 따라, 이들 중 하나 또는 이들 둘 다는 감지 출력(218k)으로서 이용된다. 추가적인 감지 회로들은 또한 추가적인 측정들을 제공하도록 채용될 수 있다. 이에 따라, 감지 출력(218k)은 임의의 특정 인스턴스에서 또는 미리결정된 시간 인터벌에 걸쳐 대응하는 프로세서(70k)에 의해 소모되는 것과 같은 전력 또는 에너지를 나타낸다.
기존의 조절기들에 부가된 여분의 회로는 매우 작은 면적을 점유할 수 있다. 버퍼 증폭기들 및 ADC(260)는 매우 작은 면적들을 갖도록 구성될 수 있다. 예를 들어, ADC(260)의 크기는, 데이터 변환의 아키텍쳐 및 프로세스 기술에 따라, 1㎟ 미만일 수 있다.
도 4는, 일 실시예에 따라 도 2에 도시된 컨트롤러(280)를 예시하는 도면이다. 컨트롤러(280)는 전용 컨트롤러일 수 있거나, 또는 이는 플랫폼(30)에 이용된 중앙 처리 유닛의 일부일 수 있다. 이는 제어 및 모니터 기능들을 수행하기 위한 회로 및/또는 소프트웨어 모듈들을 포함할 수 있다. 이는, 에너지 소모 계산기(410), 코드 할당기(420), 및 선택기 컨트롤러(430)를 포함할 수 있다. 컨트롤러(280)는 전술한 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있고, 임의의 전술한 컴포넌트들은 하드웨어, 소프트웨어, 펌웨어, 또는 임의의 이들의 조합들에 의해 구현될 수 있다.
에너지 소모 계산기(410)는, ADC(260)에 의해 변환되고 그리고 인터페이스 로직 회로(270)에 의해 프로세싱된 것과 같은 감지 출력(218k)에 기초하여 대응하는 프로세서(60k)에 의해 소모되는 것과 같은 에너지 또는 전력을 계산할 수 있고, 결과(415)를 출력한다. 예를 들어, 에너지 소모 계산기(410)는, 전압 감지 출력(318) 및 전류 감지 출력(328)의 곱으로서 전력을 계산할 수 있다. 이는, 미리결정된 시간 인터벌에 걸쳐 결정된 순시 전력(instantaneous power) 또는 통합 또는 평균 전력을 계산할 수 있다. 에너지 소모는, 프로세서들(60k){k=1, ..., N}에 의한 다양한 에너지 소모들의 비교가 적절하게 해석될 수 있도록, 정규화 인자에 따라 더 정규화될 수 있다. 이러한 정규화는, 플랫폼(30)의 동작 모드(예를 들어, 대기, 저전력, 완전 동작), 동적으로 발생된 코드(50)의 크기 등과 같은 인자들을 고려할 수 있다.
코드 할당기(420)는, 최적화 기준 또는 기준들(440)을 이용하여 적합한 프로세서(60k)에 동적으로 발생된 코드(50)를 할당할 수 있다. 최적화 기준(440)은 전체 또는 개별적인 전력 소모, 실행 시간, 프로세서에 배정된 메모리의 양에 기초할 수 있다. 이는, 이러한 성능 인자들을 나타내는 다수의 파라미터들의 조합일 수 있다. 코드 할당기(420)는 일부 시간 기간 동안 에너지 소모의 판독을 축적할 수 있다. 이는 또한, 하나의 프로세서 또는 2개 이상의 프로세서에 대한 판독들을 저장할 수 있다. 할당 절차는, 최적화 기준(440)을 최대화하기 위해 저장된 정보를 이용하여 수행될 수 있다. 할당의 결과는, 최적화 기준(440) 하에서 동적으로 발생된 코드(50)에 대해 가장 적합한 프로세서의 결정이다. 코드 할당기(420)는, 할당된 프로세서에 동적으로 발생된 코드(50)를 디스패칭하기 위해 할당 결과 또는 결과들을 코드 디스패쳐(55)에 포워딩할 수 있다. 코드 할당기(420)의 기능들 전부 또는 일부는 디스패쳐(55)에 집적될 수 있다.
선택기 컨트롤러(430)는 원하는 감지 출력을 선택하도록 멀티플렉서(250)를 제어하기 위해 제어 신호를 제공한다. 코드 할당기(420)는 시간 인터벌 동안 순시(instantaneous) 판독 또는 판독들에 대한 감지 출력들을 선택하도록 선택기 컨트롤러(430)를 제어할 수 있다. 이에 따라, 에너지 소모는 순시 에너지 소모 또는 평균 에너지 소모로서 계산될 수 있다.
도 5는 일 실시예에 따라 효율적인 코드 디스패칭을 수행하기 위한 프로세스(500)를 예시하는 플로우차트이다.
시작시에, 프로세스(500)는 감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택한다(블록 510). 감지 회로들 각각은 서브시스템에서의 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치된다. 복수의 전압 조절기들 중 대응하는 하나는, 프로세서들 중 하나와 연관된다. 다음으로, 프로세스(500)는, 복수의 감지 출력들 중 선택된 하나를, 전압 조절기들 중 대응하는 하나와 연관된, 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환한다(블록 520). 그후, 프로세스(500)는 프로세서들 중 하나의 에너지 소모를 획득한다(블록 530). 이는, 전력 소모를 계산하고 그리고 계산된 전력 소모를 정규화 인자에 의해 정규화함으로써 수행될 수 있다. 이 에너지 소모는, 동적으로 발생된 코드를 디스패칭하는데 이용된다.
다음으로, 프로세스(500)는, 획득될 필요가 있는 더 이상의 에너지 소모가 존재하는지 결정한다(블록 540). 만약 존재한다면, 프로세스(500)는 다른 감지 출력을 선택하기 위해 블록(510)으로 복귀한다. 존재하지 않는다면, 프로세스(500)는 에너지 소모에 기초하여 최적화 기준에 따라 프로세서들에 동적으로 발생된 코드 또는 코드들을 할당한다(블록 550). 그후, 프로세스(500)는 종결된다.
도 6은 일 실시예에 따라 복수의 감지 출력들 중 하나를 선택하는 것을 수행하기 위해 도 5에 도시된 프로세스(510)를 예시하는 플로우차트이다.
시작시에, 프로세스(510)는 전압 조절기들 중 대응하는 하나의 조절된 전압 출력을 감지한다(블록 610). 다음으로, 프로세스(510)는 복수의 감지 출력들 중 하나에 대응하는 전압 감지 출력을 발생시킨다(블록 620). 그후, 프로세스(510)는 전압 조절기들 중 대응하는 하나의 조절된 전압 출력의 전류를 감지한다(블록 630). 이는, 수많은 방법들에 의해 수행될 수 있다. 하나의 방법은, 조절된 전압 출력을 필터링하는 단계, 인덕터에 걸친 전압 강하를 감지하는 단계, 및 인덕터에 걸친 감지된 전압 강하를 전류 감지 출력으로 변환하는 단계를 포함한다. 다른 방법은, ON 시간 동안 드레인-소스 전압을 감지하는 단계 및 감지된 드레인-소스 전압으로부터 전류 감지 출력을 발생시키는 단계를 포함한다. 다른 방법은, 단편 전류를 미러링하는 것이다. 다음으로, 프로세스(510)는 복수의 감지 출력들 중 하나에 대응하는 전류 감지 출력을 발생시킨다(블록 640). 그후, 프로세스(510)는 종결된다.
도 7은 일 실시예에 따라 효율적인 코드 디스패칭을 수행하기 위한 프로세스(700)를 예시하는 플로우차트이다.
시작시에, 프로세스(700)는 동적으로 발생된 코드의 실행 동안 멀티-프로세스 서브시스템에서의 프로세서들 중 하나의 에너지 소모를 획득한다(블록 710). 다음으로, 프로세스(700)는 획득될 필요가 있는 더 이상의 에너지 소모가 존재하는지 결정한다(블록 720). 만약 존재한다면, 프로세스(700)는, 다른 프로세서의 에너지 소모를 획득하기 위한 블록(710)으로 복귀한다. 존재하지 않는다면, 프로세스(700)는 에너지 소모에 기초하여 최적화 기준에 따라 프로세서들에 동적으로 발생된 코드를 할당한다(블록 730). 프로세스(700)는 그후 종결된다.
도 8은 일 실시예에 따라 에너지 소모를 획득하는 단계를 수행하기 위한 도 7에 도시된 프로세스(710)를 예시하는 플로우차트이다.
시작시에, 프로세스(710)는 감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택한다(블록 810). 감지 회로들 각각은 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치된다. 복수의 전압 조절기들 중 대응하는 하나는, 프로세서들 중 하나와 연관된다. 감지 회로들은 앞서 설명된 바와 같이 구성될 수 있다. 다음으로, 프로세스(710)는, 복수의 감지 출력들 중 선택된 하나를, 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환한다(블록 820). 프로세스(710)는 그후 종결된다.
도 9는, 일 실시예에 따라 도 2에 도시된 컨트롤러(280)를 예시하는 도면이다. 컨트롤러(280)는, 프로세서(910), 칩셋(920), 메모리(930), 상호접속부(940), 대형 저장 매체(950), 입력/출력(I/O) 인터페이스(960)를 포함한다. 컨트롤러(280)는 전술한 컴포넌트들보다 많은 수의 또는 적은 수의 컴포넌트들을 포함할 수 있다.
프로세서(910)는, 임의의 유형의 아키텍쳐의 중앙 처리 유닛, 예를 들어, 하이퍼 스레딩(hyper threading), 보안, 네트워크, 디지털 매체 기술들, 단일-코어 프로세서들, 다중-코어 프로세서들, 임베디드 프로세서들, 모바일 프로세서들, 마이크로-컨트롤러들, 디지털 신호 프로세서들, 수퍼스칼라 컴퓨터들, 벡터 프로세서들, 단일 명령 다중 데이터(SIMD) 컴퓨터들, 복합 명령 세트 컴퓨터들(CISC), 감소된 명령 세트 컴퓨터들(RISC), 매우 긴 명령 워드(VLFW), 또는 하이브리드 아키텍쳐를 이용하는 프로세서들을 나타낸다.
칩셋(920)은, 메모리 및 입력/출력 디바이스들, 예를 들어, 메모리(930), 대량 저장 매체(950) 및 I/O 인터페이스(960)의 제어 및 구성을 제공한다. 칩셋(920)은, 다수의 기능들, 예를 들어, 그래픽, 미디어, 호스트-주변 버스 인터페이스, 메모리 제어, 전력 관리 등을 집적할 수 있다. 이는 또한, 다수의 인터페이스 및 I/O 기능들, 예를 들어, PCI(peripheral component interconnect) 버스 인터페이스, 프로세서 인터페이스, 인터럽트 컨트롤러, DMA(direct memory access) 컨트롤러, 전력 관리 로직, 타이머, 시스템 관리 버스(SMBus), USB(universal serial bus) 인터페이스, 대형 저장 인터페이스, LPC(low pin count) 인터페이스, 무선 상호접속부, DMI(direct media interface) 등을 포함할 수 있다.
메모리(930)는 코드 및 데이터를 저장한다. 메모리(930)는, 통상적으로 DRAM(dynamic random access memory), SRAM(static random access memory), 또는 리프레시될 필요가 없는 것들을 포함하는 임의의 다른 유형들의 메모리들로 구현된다. 메모리(930)는 앞서 설명된 동작들의 전부 또는 일부를 수행하는 코드 할당기 및 디스패쳐 모듈(935)을 포함할 수 있다.
상호접속부(940)는 주변 디바이스들에 대한 인터페이스를 제공한다. 상호접속부(940)는, 포인트-투-포인트일 수 있고 또는 다수의 디바이스들에 접속될 수 있다. 명료함을 위해, 모든 상호접속부들이 도시된 것은 아니다. 상호접속부(940)는 임의의 상호접속부 또는 버스, 예를 들어, PCI, PCI 익스프레스, USB, SCSI(Small Computer System Interface), 직렬 SCSI, 및 DMI(Direct Media Interface) 등을 포함할 수 있다.
대형 저장 매체(950)는, 아카이브 정보, 예를 들어, 코드, 프로그램들, 파일들, 데이터, 및 애플리케이션들을 저장하기 위한 대형 저장 디바이스들로의 인터페이스들을 포함한다. 대형 저장 인터페이스는, SCSI, 직렬 SCSI, ATA(Advanced Technology Attachment)(병렬 및/또는 직렬), IDE(Integrated Drive Electronics), 강화된 IDE, ATAPI(ATA Packet Interface) 등을 포함할 수 있다. 대형 저장 디바이스는, CD ROM(compact disk read-only memory), DVD(digital video/versatile disc), 플로피 드라이브, 하드 드라이브, 테이프 드라이브, 및 임의의 다른 자기 또는 광학 저장 디바이스들을 포함할 수 있다. 대형 저장 디바이스는, 머신-액세스가능 매체를 판독하기 위한 메커니즘을 제공한다. 일 실시예에서, 대형 저장 매체(950)는 플래시 메모리를 포함할 수 있다.
I/O 인터페이스(960)는 패널 디스플레이 또는 입력 엔트리 디바이스들과 같은 I/O 디바이스들에 대한 인터페이스를 제공한다. I/O 인터페이스(960)는, 그래픽 디스플레이, 키패드, 및 다른 통신 또는 이미징 디바이스들, 예를 들어, 카메라, 블루투스 인터페이스 등에서의 터치 스크린에 대한 인터페이스를 제공할 수 있다.
단어 "예시적인"은 "예, 예시, 또는 예증으로서 기능하는"을 의미하도록 본원에 이용된다. "예시적인"으로서 본원에 설명된 임의의 실시예가 반드시 다른 실시예들에 비해 바람직하거나 또는 유리한 것으로서 해석되는 것은 아니다. 마찬가지로, 용어 "본 발명의 실시예들"은, 본 발명의 모든 실시예들이 논의된 특징, 이점 또는 동작 모드를 포함하도록 요구하지 않는다. "프로세서-판독가능 또는 액세스가능 매체" 또는 "머신-판독가능 또는 액세스가능 매체"는 정보를 저장 또는 전송할 수 있는 임의의 매체를 포함할 수 있다. 프로세서-판독가능 또는 머신-판독가능 저장 매체의 예시들은, 전자 회로, 반도체 메모리 디바이스, ROM, 플래시 메모리, 삭제가능한 프로그래머블 ROM(EPROM), 플로피 디스켓, CD ROM, 광학 디스크 하드 디스크 등을 포함한다. 머신-액세스가능 저장 매체는 제조 물품 내에 포함될 수 있다. 머신-액세스가능 저장 매체는, 머신에 의해 액세스될 때, 머신으로 하여금 앞서 설명된 동작들 또는 액션들을 수행하게 하는 정보 또는 데이터를 포함할 수 있다. 머신-액세스가능 저장 매체는 또한 그 내부에 내장된 프로그램 코드, 명령 또는 명령들을 포함할 수 있다. 프로그램 코드는, 앞서 설명된 동작들 또는 액션들을 수행하기 위해 머신-판독가능 코드, 명령 또는 명령들을 포함할 수 있다. 용어 "정보" 또는 "데이터"는 여기서 머신-판독가능 목적들을 위해 인코딩된 임의의 유형의 정보를 지칭한다. 따라서, 이는, 프로그램, 코드, 데이터, 파일 등을 포함할 수 있다.
본원에 이용된 용어는, 오직 특정한 실시예들만을 설명하는 목적이며, 본 발명의 실시예들을 제한하도록 의도되지 않는다. 본원에 이용된 바와 같이, 단수 형태들은, 문맥이 명백하게 달리 나타내지 않는 한, 복수의 형태들도 또한 포함하도록 의도된다. 또한, 용어들 "포함하다", "포함하는", "구비하다" 및/또는 "구비하는"은, 본원에 이용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 불가능하게 하지 않는다는 것이 더 이해될 것이다.
게다가, 수많은 실시예들이, 예를 들어, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 액션들의 시퀀스들과 관련하여 설명된다. 본원에 설명된 다양한 액션들은, 특정 회로들(예를 들어, 주문형 집적 회로들(ASIC들))에 의해, 하나 또는 그 초과의 프로세서들에 의해 수행되는 프로그램 명령들에 의해, 또는 이들 둘의 조합에 의해 수행될 수 있음이 인식될 것이다. 추가적으로, 본원에 설명된 액션들의 이러한 시퀀스들은, 실행시에 관련된 프로세서로 하여금 본원에 설명된 기능을 수행하게 하는 컴퓨터 명령들의 대응하는 세트를 저장하고 있는 임의의 형태의 컴퓨터-판독가능 저장 매체 내에서 전체적으로 구현되는 것으로 고려될 수 있다. 따라서, 본 발명의 다양한 양상들은, 다수의 상이한 형태들로 구현될 수 있고, 이들 모두는 청구된 청구물의 범위 내에 있는 것으로 고찰되어 왔다. 이에 더해, 본원에 설명된 실시예들 각각에 대해, 임의의 이러한 실시예들의 대응하는 형태는, 예를 들어, 설명된 액션을 수행 "하도록 구성된 로직"으로서 본원에서 설명될 수 있다.
게다가, 실시예들의 전부 또는 일부는 특정 특징들, 기능들에 따른 애플리케이션들에 따라 다양한 수단들에 의해 구현될 수 있다. 이러한 수단들은, 하드웨어, 소프트웨어, 또는 펌웨어, 또는 임의의 이들의 조합을 포함할 수 있다. 하드웨어, 소프트웨어, 또는 펌웨어 엘리먼트는 서로 결합된 몇몇 모듈들을 가질 수 있다. 하드웨어 모듈은 기계적, 전기적, 광학적, 전자기적 또는 임의의 물리적 접속들에 의해 다른 모듈에 커플링된다. 소프트웨어 모듈은, 기능, 절차, 방법, 서브시스템, 또는 서브루틴 호출, 점프, 링크, 파라미터, 변수, 및 아규먼트 통과, 기능 복귀 등에 의해 다른 모듈에 커플링된다. 소프트웨어 모듈은, 변수들, 파라미터들, 아규먼트들, 포인터들, 등을 수신하기 위해 그리고/또는 결과들, 업데이트된 변수들, 포인터들 등을 발생시키거나 또는 통과시키기 위해 다른 모듈에 커플링된다. 펌웨어 모듈은, 전술한 하드웨어 및 소프트웨어 커플링 방법들의 임의의 조합에 의해 다른 모듈에 커플링된다. 하드웨어, 소프트웨어, 또는 펌웨어 모듈은 다른 하드웨어, 소프트웨어, 또는 펌웨어 모듈 중 임의의 하나에 커플링될 수 있다. 모듈은 또한, 플랫폼 상에서 구동하는 동작 시스템과 상호작용하기 위한 소프트웨어 드라이버 또는 인터페이스일 수 있다. 모듈은 또한, 하드웨어 디바이스에 데이터를 그리고 그로부터 데이터를 구성, 셋업, 초기화, 전송 및 수신하기 위한 하드웨어 드라이버일 수 있다. 장치는, 하드웨어, 소프트웨어, 및 펌웨어 모듈들의 임의의 조합을 포함할 수 있다.
당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 이용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 전술한 설명을 통해서 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광 필드들 또는 광 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
게다가, 당업자들은 본원에 개시된 실시예들과 관련하여 설명된 다양한 예시적인 로지컬 블록들, 모듈들, 회로들, 및 알고리즘 단계들이 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들의 조합으로서 구현될 수 있다는 것을 이해할 것이다. 하드웨어 및 소프트웨어의 이러한 상호 호환성을 명료하게 설명하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 단계들이 이들의 기능과 관련하여 위에서 일반적으로 설명되었다. 이러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지 여부는 특정한 애플리케이션 및 전체 시스템에 대하여 부과되는 설계 제약들에 따라 좌우된다. 당업자들은 각각의 특정한 애플리케이션에 대하여 다양한 방식들로 설명된 기능을 구현할 수 있으나, 이러한 구현 결정들은 본 개시물의 범위를 벗어남을 야기하는 것으로 해석되어서는 안 된다.
본원에 개시된 실시예들과 관련하여 설명된 방법들, 시퀀스들 및/또는 알고리즘들은 직접 하드웨어로 구현되거나, 프로세서에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이 둘의 조합으로 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터들, 하드 디스크, 탈착식 디스크, CD-ROM, 또는 당업계에 공지된 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록, 프로세서에 커플링될 수 있다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다.
이에 따라, 본 발명의 실시예는 효율적인 코드 디스패칭을 위한 방법을 구현하는 컴퓨터-판독가능 매체를 포함할 수 있다. 이에 따라, 본 발명은 예시된 예시들로 제한되지 않으며, 본원에 설명된 기능을 수행하기 위한 임의의 수단들은 본 발명의 실시예들에 포함된다.
전술한 개시물이 본 발명의 예시적인 실시예들을 나타내지만, 다양한 변화들 및 변형들이 첨부된 청구항들에 의해 정의된 바와 같이 본 발명의 범위로부터 벗어나지 않고 본원에서 행해질 수 있다는 것에 주목해야 한다. 본원에 설명된 본 발명의 실시예들에 따른 방법 청구항들의 기능들, 단계들 및/또는 액션들은 임의의 특정 순서로 수행될 필요는 없다. 게다가, 본 발명의 엘리먼트들은 단수 형태로 설명되거나 또는 청구되지만, 단수로의 한정이 명시적으로 언급되지 않는 한 복수도 고려된다.

Claims (27)

  1. 장치로서,
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하기 위해 서브시스템에서의 프로세서들에 전력을 공급하는 복수의 전압 조절기들에 커플링된 멀티플렉서 ― 상기 감지 회로들 각각은, 상기 프로세서들 중 하나와 연관된, 전압 조절기들 중 대응하는 하나에 위치됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 전압 조절기들 중 대응하는 하나와 연관된, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하기 위해 상기 멀티플렉서에 커플링된 아날로그-디지털 컨버터 ― 상기 에너지 소모는 동적으로 발생된 코드를 디스패칭하기 위해 이용됨 ― 를 포함하는,
    장치.
  2. 제 1 항에 있어서,
    상기 감지 회로 각각은:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전압 출력을 감지하기 위한 전압 감지 회로 ― 상기 전압 감지 회로는, 상기 복수의 감지 출력들 중 하나에 대응하는 전압 감지 출력을 발생시킴 ― 를 포함하는,
    장치.
  3. 제 2 항에 있어서,
    상기 감지 회로 각각은:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전류 출력을 감지하기 위한 전류 감지 회로 ― 상기 전류 감지 회로는, 상기 복수의 감지 출력들 중 하나에 대응하는 전류 감지 출력을 발생시킴 ― 를 더 포함하는,
    장치.
  4. 제 3 항에 있어서,
    상기 전류 감지 회로는:
    조절된 전압 출력을 필터링하기 위한 저역-통과 필터; 및
    인덕터에 걸친 전압 강하를 감지하기 위해 상기 저역-통과 필터에 커플링된 인덕터 강하 센서 ― 상기 인덕터 강하 센서는, 상기 인덕터에 걸친 감지된 전압 강하를 상기 전류 감지 출력으로 변환함 ― 를 포함하는,
    장치.
  5. 제 3 항에 있어서,
    상기 전류 감지 회로는, on 시간 동안 드레인-소스 전압을 감지하기 위한 통과 트랜지스터(pass transistor)를 포함하고,
    상기 통과 트랜지스터는, 상기 감지된 드레인-소스 전압으로부터 상기 전류 감지 출력을 발생시키는,
    장치.
  6. 제 3 항에 있어서,
    상기 전류 감지 회로는 단편 전류 미러(fractional current mirror)를 포함하는,
    장치.
  7. 제 1 항에 있어서,
    상기 프로세서들 중 하나의 에너지 소모를 획득하기 위한 컨트롤러 ― 상기 에너지 소모는 최적화 기준에 따라 동적으로 발생된 코드를 상기 프로세서들에 할당하는데 이용함 ― 를 더 포함하는,
    장치.
  8. 방법으로서,
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하는 단계 ― 상기 감지 회로들 각각은 서브시스템에서의 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치되고, 상기 복수의 전압 조절기들 중 대응하는 하나는 상기 프로세서들 중 하나와 연관됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 전압 조절기들 중 대응하는 하나와 연관된, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하는 단계 ― 상기 에너지 소모는 동적으로 발생된 코드의 디스패칭을 위해 이용됨 ― 를 포함하는,
    방법.
  9. 제 8 항에 있어서,
    상기 선택하는 단계는:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전압 출력을 감지하는 단계; 및
    상기 복수의 감지 출력들 중 하나에 대응하는 전압 감지 출력을 발생시키는 단계를 포함하는,
    방법.
  10. 제 9 항에 있어서,
    상기 선택하는 단계는:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전류 출력을 감지하는 단계; 및
    상기 복수의 감지 출력들 중 하나에 대응하는 전류 감지 출력을 발생시키는 단계를 더 포함하는,
    방법.
  11. 제 10 항에 있어서,
    상기 조절된 전류 출력을 감지하는 단계는:
    상기 조절된 전압 출력을 필터링하는 단계;
    인덕터에 걸친 전압 강하를 감지하는 단계; 및
    상기 인덕터에 걸친 감지된 전압 강하를 상기 전류 감지 출력으로 변환하는 단계를 포함하는,
    방법.
  12. 제 10 항에 있어서,
    상기 조절된 전류 출력을 감지하는 단계는:
    on 시간 동안 드레인-소스 전압을 감지하는 단계; 및
    감지된 드레인-소스 전압으로부터 전류 감지 출력을 발생시키는 단계를 포함하는,
    방법.
  13. 제 10 항에 있어서,
    상기 조절된 전류 출력을 감지하는 단계는, 단편적인 전류를 미러링하는 단계를 포함하는,
    방법.
  14. 제 8 항에 있어서,
    상기 프로세서들 중 하나의 에너지 소모를 획득하는 단계; 및
    상기 에너지 소모에 기초하여 최적화 기준에 따라 상기 동적으로 발생된 코드를 상기 프로세서들에 할당하는 단계를 더 포함하는,
    방법.
  15. 방법으로서,
    동적으로 발생된 코드의 실행 동안 멀티-프로세서 서브시스템에서의 프로세서들 중 하나의 에너지 소모를 획득하는 단계, 및
    상기 에너지 소모에 기초하여 최적화 기준에 따라 상기 동적으로 발생된 코드를 상기 프로세서들에 할당하는 단계를 포함하는,
    방법.
  16. 제 15 항에 있어서,
    상기 획득하는 단계는:
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하는 단계 ― 상기 감지 회로들 각각은 상기 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치되고, 상기 복수의 전압 조절기들 중 상기 대응하는 하나는 상기 프로세서들 중 하나와 연관됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하는 단계를 포함하는,
    방법.
  17. 제조 물품으로서,
    데이터를 포함하는 머신-액세스가능 저장 매체를 포함하고,
    상기 데이터는, 머신에 의해 액세스될 때, 상기 머신으로 하여금:
    동적으로 발생된 코드의 실행 동안 멀티-프로세서 서브시스템에서의 프로세서들 중 하나의 에너지 소모를 획득하는 동작; 및
    상기 에너지 소모에 기초하여 최적화 기준에 따라 상기 동적으로 발생된 코드를 상기 프로세서들에 할당하는 동작을 수행하게 하는,
    제조 물품.
  18. 제 17 항에 있어서,
    상기 머신으로 하여금 상기 획득하는 동작을 수행하게 하는 데이터는, 상기 머신에 의해 실행될 때, 상기 머신으로 하여금:
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하는 동작 ― 상기 감지 회로들 각각은 상기 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치되고, 상기 복수의 전압 조절기들 중 상기 대응하는 하나는 상기 프로세서들 중 하나와 연관됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하는 동작을 수행하게 하는,
    제조 물품.
  19. 장치로서,
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하기 위한 수단 ― 상기 감지 회로들 각각은 서브시스템들에서의 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치되고, 상기 복수의 전압 조절기들 중 상기 대응하는 하나는 상기 프로세서들 중 하나와 연관됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 전압 조절기들 중 대응하는 하나와 연관된, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하기 위한 수단 ― 상기 에너지 소모는 동적으로 발생된 코드의 디스패칭을 위해 이용됨 ― 을 포함하는,
    장치.
  20. 제 19 항에 있어서,
    상기 선택하기 위한 수단은:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전압 출력을 감지하기 위한 수단; 및
    상기 복수의 감지 출력들 중 하나에 대응하는 전압 감지 출력을 발생시키기 위한 수단을 포함하는,
    장치.
  21. 제 20 항에 있어서,
    상기 선택하기 위한 수단은:
    상기 전압 조절기들 중 대응하는 하나의 조절된 전류 출력을 감지하기 위한 수단; 및
    상기 복수의 감지 출력들 중 하나에 대응하는 전류 감지 출력을 발생시키기 위한 수단을 더 포함하는,
    장치.
  22. 제 21 항에 있어서,
    상기 조절된 전류 출력을 감지하기 위한 수단은:
    상기 조절된 전압 출력을 필터링하기 위한 수단;
    인덕터에 걸친 전압 강하를 감지하기 위한 수단; 및
    상기 인덕터에 걸친 감지된 전압 강하를 상기 전류 감지 출력으로 변환하기 위한 수단을 포함하는,
    장치.
  23. 제 21 항에 있어서,
    상기 조절된 전류 출력을 감지하기 위한 수단은:
    on 시간 동안 드레인-소스 전압을 감지하기 위한 수단; 및
    감지된 드레인-소스 전압으로부터 전류 감지 출력을 발생시키기 위한 수단을 포함하는,
    장치.
  24. 제 21 항에 있어서,
    상기 조절된 전류 출력을 감지하기 위한 수단은 단편적인 전류를 미러링하기 위한 수단을 포함하는,
    장치.
  25. 제 19 항에 있어서,
    상기 프로세서들 중 하나의 에너지 소모를 획득하기 위한 수단, 및
    상기 에너지 소모에 기초하여 최적화 기준에 따라 상기 동적으로 발생된 코드를 상기 프로세서들에 할당하기 위한 수단을 더 포함하는,
    장치.
  26. 장치로서,
    동적으로 발생된 코드의 실행 동안 멀티프로세서 서브시스템에서의 프로세서들 중 하나의 에너지 소모를 획득하기 위한 수단; 및
    상기 에너지 소모에 기초하여 최적화 기준에 따라 상기 동적으로 발생된 코드를 상기 프로세서들에 할당하기 위한 수단을 포함하는,
    장치.
  27. 제 26 항에 있어서,
    상기 획득하기 위한 수단은:
    감지 회로들로부터의 복수의 감지 출력들 중 하나를 선택하기 위한 수단 ― 상기 감지 회로들 각각은 상기 프로세서들에 전력을 공급하는 복수의 전압 조절기들 중 대응하는 하나에 위치되고, 상기 복수의 전압 조절기들 중 상기 대응하는 하나는 상기 프로세서들 중 하나와 연관됨 ―; 및
    상기 복수의 감지 출력들 중 선택된 하나를, 상기 프로세서들 중 하나의 에너지 소모를 나타내는 디지털 파라미터로 변환하기 위한 수단을 포함하는,
    장치.
KR1020147022859A 2012-01-18 2013-01-17 성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치 KR20140117551A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/352,670 2012-01-18
US13/352,670 US20130185581A1 (en) 2012-01-18 2012-01-18 Efficient Code Dispatch Based on Performance and Energy Consumption
PCT/US2013/021850 WO2013109697A1 (en) 2012-01-18 2013-01-17 Efficient code dispatch based on performance and energy consumption

Publications (1)

Publication Number Publication Date
KR20140117551A true KR20140117551A (ko) 2014-10-07

Family

ID=47780173

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147022859A KR20140117551A (ko) 2012-01-18 2013-01-17 성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치

Country Status (8)

Country Link
US (1) US20130185581A1 (ko)
EP (1) EP2805240A1 (ko)
JP (1) JP2015505412A (ko)
KR (1) KR20140117551A (ko)
CN (1) CN104054057A (ko)
IN (1) IN2014CN04651A (ko)
TW (1) TW201342035A (ko)
WO (1) WO2013109697A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
CN104170249B (zh) * 2012-04-19 2017-07-07 英特尔公司 利用有效功率管理的信号放大器
KR102251992B1 (ko) * 2014-02-28 2021-05-14 삼성전자주식회사 전류를 제어하는 방법과 전자 장치
US9384787B2 (en) 2014-09-03 2016-07-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Selecting a voltage sense line that maximizes memory margin
US10078364B2 (en) * 2016-01-14 2018-09-18 Hcl Technologies Limited System and method for optimizing power consumption of one or more devices
US10732694B2 (en) 2017-09-22 2020-08-04 Qualcomm Incorporated Power state control of a mobile device
JP6844511B2 (ja) * 2017-11-21 2021-03-17 セイコーエプソン株式会社 携帯型情報処理装置、集積回路、及び、電池パック
US11960341B2 (en) 2021-08-31 2024-04-16 Apple Inc. Power delivery reduction scheme for SoC

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3402953B2 (ja) * 1996-09-13 2003-05-06 株式会社東芝 通信方法、通信システムおよび通信装置
US7313706B2 (en) * 2002-09-17 2007-12-25 Hewlett-Packard Development Company, L.P. System and method for managing power consumption for a plurality of processors based on a supply voltage to each processor, temperature, total power consumption and individual processor power consumption
US6906582B2 (en) * 2003-08-29 2005-06-14 Freescale Semiconductor, Inc. Circuit voltage regulation
US7102338B2 (en) * 2003-10-23 2006-09-05 Intel Corporation Multi-sense voltage regulator
US7386739B2 (en) * 2005-05-03 2008-06-10 International Business Machines Corporation Scheduling processor voltages and frequencies based on performance prediction and power constraints
US7793125B2 (en) * 2007-01-10 2010-09-07 International Business Machines Corporation Method and apparatus for power throttling a processor in an information handling system
US20090271646A1 (en) * 2008-04-24 2009-10-29 Vanish Talwar Power Management Using Clustering In A Multicore System
DE112009003526T5 (de) * 2008-11-21 2012-09-27 L & L Engineering Llc Digitaler Kompensator für Stromversorgungsanwendungen
US9043795B2 (en) * 2008-12-11 2015-05-26 Qualcomm Incorporated Apparatus and methods for adaptive thread scheduling on asymmetric multiprocessor
US8122269B2 (en) * 2009-01-07 2012-02-21 International Business Machines Corporation Regulating power consumption in a multi-core processor by dynamically distributing power and processing requests by a managing core to a configuration of processing cores
US8892931B2 (en) * 2009-10-20 2014-11-18 Empire Technology Development Llc Power channel monitor for a multicore processor
US8629679B2 (en) * 2009-12-29 2014-01-14 O2Micro, Inc. Circuits and methods for measuring cell voltages in battery packs
US8634302B2 (en) * 2010-07-30 2014-01-21 Alcatel Lucent Apparatus for multi-cell support in a network
US8683243B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US8595520B2 (en) * 2011-10-12 2013-11-26 Qualcomm Incorporated System and method for determining thermal management policy from leakage current measurement
US9098261B2 (en) * 2011-12-15 2015-08-04 Intel Corporation User level control of power management policies

Also Published As

Publication number Publication date
TW201342035A (zh) 2013-10-16
WO2013109697A1 (en) 2013-07-25
EP2805240A1 (en) 2014-11-26
IN2014CN04651A (ko) 2015-09-18
JP2015505412A (ja) 2015-02-19
CN104054057A (zh) 2014-09-17
US20130185581A1 (en) 2013-07-18

Similar Documents

Publication Publication Date Title
KR20140117551A (ko) 성능 및 에너지 소모에 기초하는 효율적인 코드 디스패치
García-Martín et al. Estimation of energy consumption in machine learning
TWI628539B (zh) 在多核心處理器中執行電源管理
US10775873B2 (en) Performing power management in a multicore processor
KR101683014B1 (ko) 코드 영역들의 연속적 자동 튜닝을 위한 방법, 장치, 시스템
Tiwari et al. Auto-tuning for energy usage in scientific applications
US20170123775A1 (en) Compilation of application into multiple instruction sets for a heterogeneous processor
CN107533354B (zh) 控制处理器的处理引擎的性能状态
Shelepov et al. Scheduling on heterogeneous multicore processors using architectural signatures
Alessi et al. Application-level energy awareness for openmp
KR20140029721A (ko) Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
CN101661397A (zh) 实现程序动态加载的方法和生成映射文件的方法及设备
JP2022532838A (ja) プロセッサの処理回路の電流消費を動的に制御するためのシステム、装置及び方法
Mukhanov et al. ALEA: Fine-grain energy profiling with basic block sampling
Bakar et al. Protean: An energy-efficient and heterogeneous platform for adaptive and hardware-accelerated battery-free computing
Goel et al. Techniques to measure, model, and manage power
Rauber et al. Model-based optimization of the energy efficiency of multi-threaded applications
Wang et al. CPU+ GPU scheduling with asymptotic profiling
Neugebauer et al. Plasmon-based virus detection on heterogeneous embedded systems
Liang et al. Efficient kernel management on GPUs
KR101509938B1 (ko) 태스크 스케줄링 방법 및 장치
CN102804136B (zh) 副处理器、集成电路装置及电子设备
CN111936952A (zh) 用于处理器的响应式自主硬件性能状态控制的系统、装置和方法
US20180253288A1 (en) Dynamically predict and enhance energy efficiency
Xu et al. Lush: Lightweight framework for user-level scheduling in heterogeneous multicores

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid