KR101826088B1 - 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들 - Google Patents

프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들 Download PDF

Info

Publication number
KR101826088B1
KR101826088B1 KR1020167029018A KR20167029018A KR101826088B1 KR 101826088 B1 KR101826088 B1 KR 101826088B1 KR 1020167029018 A KR1020167029018 A KR 1020167029018A KR 20167029018 A KR20167029018 A KR 20167029018A KR 101826088 B1 KR101826088 B1 KR 101826088B1
Authority
KR
South Korea
Prior art keywords
power mode
processor core
latency
power
controlling
Prior art date
Application number
KR1020167029018A
Other languages
English (en)
Other versions
KR20160145595A (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 KR20160145595A publication Critical patent/KR20160145595A/ko
Application granted granted Critical
Publication of KR101826088B1 publication Critical patent/KR101826088B1/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/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • 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/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
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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
    • Y02D10/152

Abstract

프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들이 개시된다. 하나의 양상에서, 전력 모드 유닛들은 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않는 경우 프로세서 코어에 제공되는 전력을 감소시키도록 구성된다. 스레드에 의해 프로세싱되는 명령의 오퍼랜드는 프로세서 코어 외부에 로케이팅되는 메모리 내의 데이터일 수 있다. 프로세서 코어가 스레드가 프로세서 코어 외부로부터의 요청을 대기하는 동안 동작하기 위해서 많은 전력을 요구하지 않으면, 프로세서 코어에 의해 소비되는 전력은 이 대기 기간들 동안 감소될 수 있다. 전력은, 단지 프로세싱되는 스레드들이 펜딩 상태에 있으면 스레드들이 프로세싱되는 경우에도 프로세서 코어에서 보존될 수 있으며, 프로세서 코어 및 그 대응하는 CPU에서의 전체 전력 소비를 감소시킬 수 있다.

Description

프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들{LATENCY-BASED POWER MODE UNITS FOR CONTROLLING POWER MODES OF PROCESSOR CORES, AND RELATED METHODS AND SYSTEMS}
[0001] 본 출원은 2014년 4월 22일자로 출원된 "LATENCY-BASED POWER MODE UNITS FOR CONTROLLING POWER MODES OF PROCESSOR CORES, AND RELATED METHODS AND SYSTEMS"라는 명칭의 미국 특허 출원 일련 번호 제14/258,541호에 대한 우선권을 주장하고, 상기 출원은 그 전체 내용이 인용에 의해 본원에 포함된다.
[0002] 본 개시 내용의 기술은 일반적으로 프로세서 코어들에 관한 것이고, 더 구체적으로, 프로세서 코어들의 전력 모드들을 제어하는 것에 관한 것이다.
[0003] 프로세서-기반 컴퓨터 시스템들은 명령 실행을 위한 하나 또는 그 초과의 프로세서 코어들을 각각 포함하는 하나 또는 그 초과의 CPU(central processing unit)들을 포함할 수 있다. 각각의 프로세서 코어는 다수의 파이프라인 스테이지들을 통해 명령을 프로세싱하는데 사용되는 하드웨어 자원들을 포함한다. 예를 들어, 파이프라인에서 명령을 프로세싱하는 것은 명령을 인출하는 것 및 산술 로직 유닛과 같은 실행 유닛에 명령을 전송하기 이전에 명령을 디코딩하는 것을 포함할 수 있다. 추가로, 프로세서 코어의 하드웨어 자원들은 "하드웨어 스레드들"로 또한 지칭되는 "스레드들"로 알려진 별개의 부분들로 분할될 수 있다. 스레드들은 다수의 명령들을 병렬적으로 동시에 프로세싱하기 위한 능력을 프로세서 코어에 제공한다. 더 구체적으로, 프로세서 코어에서의 스레드는 동시에 명령을 프로세싱할 수 있고, 동일한 프로세서 코어에서의 또 다른 스레드는 상이한 명령을 프로세싱한다.
[0004] 이와 관련하여, 프로세서 코어 내의 명령들을 프로세싱하는 것은 대응하는 CPU의 전체 전력 소비에 기여한다. 전력을 보존하려는 노력으로, CPU는 프로세서 코어의 활동에 따라 프로세서 코어의 전력 레벨을 제어하도록 구성되는 전력 제어 유닛을 이용할 수 있다. 예를 들어, 전력 제어 유닛은, 명령들을 프로세싱하기 위해서 프로세서 코어 내의 하드웨어 자원들을 구동시키기 위한 충분한 전력을 제공하도록, 적어도 하나의 스레드가 활성 상태에 있는 동안 공칭 전력 레벨을 프로세서 코어에 제공할 수 있다. 그러나, 어떠한 스레드들도 프로세서 코어에서 활성 상태에 있지 않으면, 전력 제어 유닛은 전력을 보존하기 위해서 프로세서 코어를 전력 붕괴시킬 수 있다. 이러한 방식으로, 프로세서 코어 및 그 대응하는 CPU의 전력 소비는, 프로세서 코어가 활성 상태에서 스레드를 가지는 경우 공칭 전력을 프로세서 코어에 제공하고, 모든 스레드들이 비활성인 경우 프로세서 코어를 전력 붕괴시킴으로써 보존된다.
[0005] 상세한 설명에서 개시되는 양상들은 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들을 포함한다. 관련 방법들 및 시스템들이 또한 개시된다. 본원에서의 양상들에서, 전력을 보존하기 위해서 어떠한 스레드들도 활성이 아닌 경우 전력 모드 유닛이 단지 프로세서 코어를 전력 붕괴시킬 수 있다기 보다는, 본원에서 개시되는 전력 모드 유닛들은 또한, 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않는 경우 프로세서 코어에 제공되는 전력을 감소시키거나 또는 붕괴시킬 수 있도록 구성된다.
[0006] 스레드에서의 명령의 프로세싱이 그 외에 또 다른 명령을 프로세싱하는 스레드 없이 명령에 대한 프로세서 코어 외부에서부터 리트리브될 데이터를 대기하는 것으로 구성되는 경우, 스레드는 프로세서 코어에서 펜딩 상태에 있다. 예를 들어, 스레드에 의해 프로세싱되는 명령의 오퍼랜드는 프로세서 코어 외부에 로케이팅되는 메모리 내의 데이터일 수 있다. 프로세서 코어가 스레드가 펜딩 상태에 있으며 프로세서 코어 외부로부터의 요청을 대기하는 동안 동작하기 위해서 많은 전력을 요구하지 않으면, 프로세서 코어에 의해 소비되는 전력은 또한 이 대기 기간들의 레이턴시 동안 감소될 수 있다. 이러한 방식으로, 스레드들이 펜딩 상태에 있는 경우에도 프로세서 코어에서 전력이 보존될 수 있다. 단지 모든 스레드들이 비활성인 경우와는 대조적으로, 스레드들이 펜딩 상태에 있는 경우 추가적으로 전력을 보존할 수 있는 CPU(central processing unit)는 프로세서 코어 및 그 대응하는 CPU에서의 전체 전력 소비를 감소시킬 수 있다.
[0007] 이와 관련하여, 하나의 양상에서, 프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛이 제공된다. 레이턴시-기반 전력 모드 유닛은 프로세서 코어 외부에서의 데이터 액세스에 대한, 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하도록 구성되는 전력 모드 입력을 포함한다. 레이턴시-기반 전력 모드 유닛은 프로세서 코어에서의 스레드들의 상태와 관련된 워크로드 정보를 수신하도록 구성되는 스레드 워크로드 입력을 더 포함한다. 레이턴시-기반 전력 모드 유닛은: (1) 워크로드 정보가 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시하고; 그리고 (2) 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 하나 또는 그 초과의 스레드들의 전류 데이터 액세스 레이턴시를 표시하면, 감소된 전력 모드에서 동작하도록 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하도록 구성된다. 특히, 펜딩 상태에서 하나 더 많은 스레드들의 전류 데이터 액세스 레이턴시 상에서 감소된 전력 모드를 컨디셔닝하는 것은 스레드들이 긴 레이턴시 데이터를 대기하도록 제한되는 동안 프로세서 코어가 전력을 보존하게 한다. 레이턴시-기반 전력 모드 유닛은 또한, 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 전력 모드 세팅을 제공하기 위해서 전력 모드 세팅을 전력 모드 출력에 제공하도록 추가로 구성될 수 있다.
[0008] 또 다른 양상에서, 프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 장치가 제공된다. 레이턴시-기반 전력 모드 장치는 프로세서 코어 외부에서의 데이터 액세스에 대한, 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하기 위한 수단을 포함한다. 레이턴시-기반 전력 모드 장치는 또한, 프로세서 코어에서의 스레드들의 상태와 관련된 워크로드 정보를 수신하기 위한 수단을 포함한다. 레이턴시-기반 전력 모드 장치는 또한, 워크로드 정보가 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시하고, 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 하나 또는 그 초과의 스레드들의 전류 데이터 액세스 레이턴시를 표시하면, 감소된 전력 모드에서 동작하도록 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하기 위한 수단을 포함한다. 레이턴시-기반 전력 모드 장치는 또한, 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 수단에 전력 모드 세팅을 제공하기 위한 수단을 더 포함할 수 있다.
[0009] 또 다른 양상에서, 레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법이 제공된다. 방법은 프로세서 코어 외부에서의 데이터 액세스에 대한, 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하는 단계를 포함한다. 방법은 프로세서 코어에서의 스레드들의 상태와 관련된 워크로드 정보를 수신하는 단계를 더 포함한다. 방법은: (1) 워크로드 정보가 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시하고; 그리고 (2) 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 하나 또는 그 초과의 스레드들의 전류 데이터 액세스 레이턴시를 표시하면, 감소된 전력 모드에서 동작하도록 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하는 단계를 더 포함한다. 방법은 또한, 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 전력 모드 세팅을 제공하는 단계를 더 포함할 수 있다.
[0010] 또 다른 양상에서, 프로세서에 의해 실행될 때, 프로세서로 하여금, 프로세서 코어 외부에서의 데이터 액세스에 대한, 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하게 하는 컴퓨터 실행가능한 명령들이 저장된 비-일시적 컴퓨터 판독가능한 매체. 컴퓨터 실행가능한 명령들은, 추가로 프로세서로 하여금, 프로세서 코어에서의 스레드들의 상태와 관련된 워크로드 정보를 수신하게 한다. 컴퓨터 실행가능한 명령들은, 추가로 프로세서로 하여금, (1) 워크로드 정보가 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시하고; 그리고 (2) 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 하나 또는 그 초과의 스레드들의 전류 데이터 액세스 레이턴시를 표시하면, 감소된 전력 모드에서 동작하도록 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하게 한다. 컴퓨터 실행가능한 명령들은, 추가로 프로세서로 하여금, 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 전력 모드 세팅을 제공하게 할 수 있다.
[0011] 도 1은 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않는 경우 프로세서 코어에 공급되는 전력 레벨을 감소시킴으로써 프로세서 코어의 전력 모드들을 제어하도록 구성되는 레이턴시-기반 전력 모드 유닛을 이용하는 예시적 프로세서 서브시스템의 블록도이다.
[0012] 도 2는 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않는 경우 프로세서 코어에 공급되는 전력 레벨을 감소시키는 것을 포함하여, 프로세서 코어의 전력 모드들을 제어하는 도 1의 레이턴시-기반 전력 모드 유닛의 예시적 프로세스를 예시하는 흐름도이다.
[0013] 도 3a는 스레드가 활성 상태에 있는지, 비활성 상태에 있는지 아니면 펜딩 상태에 있는지에 기초하여 도 1의 레이턴시-기반 전력 모드 유닛에 의해 제어되는 프로세서 코어의 예시적 스레드 활동 및 전력 레벨 활동 및 프로세서 코어의 대응하는 전력 모드를 예시하는 도면이다.
[0014] 도 3b는 도 1의 레이턴시-기반 전력 모드 유닛을 이용하는 결과로서 도 3a의 프로세서 코어의 예시적 전력 감소를 예시하는 도면이다.
[0015] 도 4는 프로세서 코어의 전력 모드들을 제어하는 도 1의 레이턴시-기반 전력 모드 유닛의 예시적 프로세스를 예시하는 흐름도이다 ― 여기서, 전력 모드 세팅은 더 낮은 전력 모드 또는 더 높은 전력 모드와 연관된 전력 모드 세팅이 데이터 액세스 레이턴시의 듀레이션에 기초하여 생성될 수 있음 ― .
[0016] 도 5는 스레드가 프로세서 코어 외부에서의 데이터 액세스의 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 경우 도 1의 레이턴시-기반 전력 모드 유닛에 의해 제어되는 프로세서 코어의 예시적 스레드 활동 및 전력 레벨 활동 및 프로세서 코어의 대응하는 전력 모드를 예시하는 도면이다.
[0017] 도 6은 프로세서 코어에서의 2개의 스레드들이 펜딩 상태, 활성 상태 및 비활성 상태 사이에서 트랜지션하는 경우 도 1의 레이턴시-기반 전력 모드 유닛에 의해 제어되는 프로세서 코어의 예시적 스레드 활동 및 전력 레벨 활동, 및 프로세서 코어의 대응하는 전력 모드를 예시하는 도면이다.
[0018] 도 7은 도 1의 하나 또는 그 초과의 프로세서 코어들 및 레이턴시-기반 전력 모드 유닛을 포함하는 CPU(central processing unit)를 포함할 수 있는 예시적 프로세서-기반 시스템의 블록도이다.
[0019] 이제, 도시되는 도면들을 참조하면, 본 개시 내용의 몇몇 예시적 양상들이 설명된다. "예시적"이라는 단어는 본원에서 "예, 예시 또는 예증으로서 제공되는"의 의미로 사용된다. "예시적"으로서 본원에서 설명되는 임의의 양상이 반드시 다른 양상들보다 선호되거나 또는 유리한 것으로 해석되는 것은 아니다.
[0020] 본원에서 개시되는 양상들은 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들을 포함한다. 관련 방법들 및 시스템들이 또한 개시된다. 이와 관련하여, 도 1은 프로세서 코어(14)의 전력 모드를 제어하기 위한 예시적 레이턴시-기반 전력 모드 유닛(12)을 이용하는 예시적 CPU(central processing unit) 서브시스템(10)을 예시한다. 프로세서 코어(14)는 동시적 프로세싱을 제공하도록 각각 구성되는 복수의 스레드들 X(0)-X(N)를 가지며, 여기서, 'N+1'은 스레드들의 수와 동일하다. 그러나, 프로세서 코어(14)는 단지 하나(1)의 스레드를 포함할 수 있다. 아래에서 더 상세하게 논의되는 바와 같이, 도 1의 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에서의 스레드들 X(0)-X(N) 중 적어도 하나가 펜딩 상태에 있고 어떠한 스레드들 X(0)-X(N)도 활성이 아닌 경우 프로세서 코어(14)에 제공되는 전력을 감소시키거나 또는 붕괴시킬 수 있도록 구성된다. 이러한 방식으로, 단지 프로세서 코어(14)에서의 스레드들 X(0)-X(N)이 비활성인 경우와는 대조적으로, 스레드들 X(0)-X(N)이 펜딩 상태에 있는 경우에도 전력이 프로세서 코어(14)에서 보존될 수 있다.
[0021] 스레드 X에서의 명령의 프로세싱이 그 외에 또 다른 명령을 프로세싱하는 스레드 X 없이 명령에 대한 프로세서 코어(14) 외부에서부터 리트리브될 데이터를 대기하는 것으로 구성되면, 도 1의 프로세서 코어(14)의 스레드 X는 펜딩 상태에 있다. 추가적으로, 스레드 X가 프로세서 코어(14) 외부에서부터 리트리브될 데이터를 대기하고 있지 않고, 그렇지 않으면 스레드 X가 명령을 프로세싱하고 있으면, 프로세서 코어(14)에서의 스레드 X는 활성 상태에 있다. 스레드 X가 활성 상태에도 또는 펜딩 상태에도 있지 않으면 스레드 X는 비활성 상태에 있다. 예를 들어, 프로세서 코어(14)에서의 스레드 X에 의해 프로세싱되는 명령의 오퍼랜드는 프로세서 코어(14) 외부에 로케이팅되는 메모리 내의 데이터일 수 있다. 프로세서 코어(14)가 스레드 X가 펜딩 상태에 있으며 프로세서 코어(14) 외부로부터의 요청을 대기하는 동안 동작하기 위해서 많은 전력을 요구하지 않으면, 프로세서 코어(14)에 의해 소비되는 전력은 또한 이 대기 기간들의 레이턴시 동안 감소될 수 있다. 이러한 방식으로, 스레드들 X(0)-X(N)이 펜딩 상태에 있는 경우에도 프로세서 코어(14)에서 전력이 보존될 수 있다. 단지 모든 스레드들 X(0)-X(N)이 비활성인 경우와는 대조적으로, 스레드들 X(0)-X(N)이 펜딩 상태에 있는 경우 추가적으로 전력을 보존하기 위해서 레이턴시-기반 전력 모드 유닛(12)을 이용하는 것은 프로세서 코어(14) 및 대응하는 CPU 서브시스템(10)에서의 전체 전력 소비를 감소시킬 수 있다.
[0022] 도 1을 계속 참조하면, 전력을 보존하기 위해서 프로세서 코어(14)의 전력 모드들을 제어하는 레이턴시-기반 전력 모드 유닛(12)의 예들을 논의하기 이전, 레이턴시-기반 전력 모드 유닛(12) 및 CPU 서브시스템(10)의 컴포넌트들이 먼저 설명된다. 이 양상에서, 이 양상에서, 레이턴시-기반 전력 모드 유닛(12)은 전력 모드 입력(16)을 포함한다. 전력 모드 입력(16)은 프로세서 코어(14)에 공급되는 전력 레벨과 관련된 전력 모드 정보(18)를 수신하도록 구성된다. 이 예에서, 전력 모드 정보(18)는 프로세서 코어(14) 외부에서의 데이터 액세스에 대한 전력 레벨을 포함한다. 그러나, 전력 모드 정보(18)는 또한, 다른 타입들의 데이터 액세스들에 대한 전력 레벨을 포함할 수 있다. 레이턴시-기반 전력 모드 유닛(12)은 또한, 프로세서 코어(14)에서의 스레드들 X(0)-X(N)의 상태와 관련된 워크로드 정보(22)를 수신하도록 구성되는 스레드 워크로드 입력(20)을 포함한다. 예를 들어, 워크로드 정보(22)는 프로세서 코어(14)가 펜딩 상태에서 하나 또는 그 초과의 스레드들 X(0)-X(N)을 가지고, 활성 상태에서 어떠한 스레드들 X(0)-X(N)도 가지지 않는지, 활성 상태에서 스레드들 X(0)-X(N) 중 적어도 하나를 가지는지 아니면 모두가 비활성 스레드들 X(0)-X(N)인지를 표시하는 정보를 포함할 수 있다. 레이턴시-기반 전력 모드 유닛(12)은 전력 모드 정보(18) 및 워크로드 정보(22)에 기초하여 감소되거나 또는 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하도록 구성된다. 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛(28)에 전력 모드 세팅(24)을 제공하도록 전력 모드 세팅(24)을 전력 모드 출력(26)에 제공하도록 추가로 구성된다. 이 예에서, 2개의 전력 제어 유닛들(28(0), 28(1))이 제공된다. 제 1 전력 제어 유닛(28(0))은 메모리(30)에 제공되는 전력을 제어하는데 사용된다. 제 2 전력 제어 유닛(28(1))은 본원에서의 프로세싱을 수행 또는 지원하기 위한 프로세서 코어(14) 내의 로직(32)에 제공되는 전력을 제어하는데 사용된다.
[0023] 추가적으로, 이 양상에서, 레이턴시-기반 전력 모드 유닛(12)은 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 준비하기 위해서 인터럽트 출력(36) 상에서 인터럽트(34)를 생성하도록 구성된다. 대안적으로, 전력 모드 세팅(24)의 저장된 이전 인스턴스가 더 높은 전력 모드와 연관되는 경우, 레이턴시-기반 전력 모드 유닛(12)은 인터럽트 출력(36) 상에서의 인터럽트(34)의 생성을 중지(forego)하도록 구성될 수 있다. 예를 들어, 전력 모드 세팅(24)의 저장된 이전 인스턴스는 레이턴시-기반 전력 모드 유닛(12) 내의 유닛 메모리(37)에 저장될 수 있다.
[0024] 도 2는 프로세서 코어(14)의 전력 모드들을 제어하기 위한 도 1의 레이턴시-기반 전력 모드 유닛(12)에 의해 이용되는 예시적 프로세스(38)를 예시한다. 도 2를 참조하면, 레이턴시-기반 전력 모드 유닛(12)은 먼저, 프로세서 코어(14) 외부에서의 데이터 액세스에 대한, 프로세서 코어(14)에 공급되는 전력 레벨과 관련된 전력 모드 정보(18)를 수신한다(블록(40)). 그 다음, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에서의 스레드들 X(0)-X(N)의 상태를 표현하는 워크로드 정보(22)를 수신한다(블록(42)). 레이턴시-기반 전력 모드 유닛(12)은 블록(40)에서 전력 모드 정보(18)를 수신하기 이전에 또는 그와 동시에 블록(42)에서 워크로드 정보(22)를 수신할 수 있다. 추가로, 일단 레이턴시-기반 전력 모드 유닛(12)이 전력 모드 정보(18) 및 워크로드 정보(22) 둘 다를 수신하면, 레이턴시-기반 전력 모드 유닛(12)은: (1) 워크로드 정보(22)가 프로세서 코어(14)가 펜딩 상태에서 하나 또는 그 초과의 스레드들 X(0)-X(N)을 가지고 활성 상태에서 어떠한 스레드들 X(0)-X(N)도 가지지 않음을 표시하는지 여부; 및 (2) 전력 모드 정보(18)가 감소된 전력 모드에 대응하는 펜딩 상태에서 하나 또는 그 초과의 스레드들 X(0)-X(N)의 전류 데이터 액세스 레이턴시를 표시하는지 여부를 결정한다(블록(44)).
[0025] 도 2를 계속 참조하면, 블록(44)에서 이 조건들 둘 다가 존재하면, 이것은 프로세서 코어(14)가 활성인 임의의 스레드들 X(0)-X(N)을 가지지 않는다는 것을 의미한다. 추가로, 이것은 또한, 프로세서 코어(14)가 곧 활성이 될 수 있는, 펜딩 상태에서의 임의의 스레드 X를 가지지 않는다는 것을 의미한다. 따라서, 프로세서 코어(14)에 제공되는 전력은 전력을 보존하기 위한 이 시나리오에서 감소될 수 있다. 이와 관련하여, 레이턴시-기반 전력 모드 유닛(12)은 감소된 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성한다(블록(46)). 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛들(28(0), 28(1))에 감소된 전력 모드를 표시하는 전력 모드 세팅(24)을 제공한다(블록(48)).
[0026] 그러나, 도 2의 블록(44)에서의 조건들 둘 다가 존재하지 않으면, 프로세서 코어(14)는 명령을 프로세싱하기 위한 더 높은 전력 레벨이 필요하지 않다. 예를 들어, 더 높은 전력 레벨은 명령을 효율적으로 프로세싱하기 위해서 프로세서 코어(14)에서의 스레드 X에 대해 요구될 수 있다. 이 시나리오에서, 레이턴시-기반 전력 모드 유닛(12)은 감소된 전력 모드와는 대조적으로, 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성한다(블록(50)). 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛들(28(0), 28(1))에 전력 모드 세팅(24)을 제공한다(블록(48)). 도 2의 프로세스(38)는 레이턴시-기반 전력 모드 유닛(12)이 프로세서 코어(14)에 대한 전력 레벨을 제어하게 하도록 지속적으로(on an on-going basis) 반복될 수 있다.
[0027] 따라서, 요약에서, 도 2의 프로세스(38)를 이용하는 도 1의 레이턴시-기반 전력 모드 유닛(12)에 의해, 레이턴시-기반 전력 모드 유닛(12)은, 단지 프로세싱되는 스레드들 X(0)-X(N)이 펜딩 상태에 있으면, 스레드들 X(0)-X(N)이 프로세싱되는 경우에도 프로세서 코어(14)에서 전력 보존을 가능하게 한다.
[0028] 스레드들 X(0)-X(N)이 펜딩 상태에 있고 어떠한 스레드들 X(0)-X(N)도 활성이 아닌 경우 프로세서 코어(14)에 제공되는 전력을 감소시키는 도 1의 레이턴시-기반 전력 모드 유닛(12)의 추가 설명을 제공하기 위해서, 도 3a가 제공된다. 도 3a는 프로세서 코어(14)의 전력 레벨들에 대한 레이턴시-기반 전력 모드 유닛(12)의 효과들을 도시하는 예시적 스레드 활동 그래프(52) 및 대응하는 전력 레벨 활동 그래프(54)를 예시한다.
[0029] 도 3a를 참조하면, 스레드 활동 그래프(52)는 낮은 활동 레벨 LL에 의해 예시되는 바와 같이, 시간 t0에서 비활성 상태에 있는 것으로서 프로세서 코어(14)에서의 제 1 스레드 X(0)를 도시한다. 명료함을 위해서, 스레드 활동 그래프(52) 상의 낮은 활동 레벨 LL은 비활성 또는 펜딩 상태에 있는 스레드 X(0)를 표현할 수 있는 반면, 높은 활동 레벨 LH은 활성 상태에 있는 스레드 X(0)를 표현한다. 추가로, 프로세서 코어(14)에서의 모든 다른 스레드들 X(1)-X(N)(도시되지 않음)은 도 3a에서 비활성이다. 모든 스레드들 X(0)-X(N)이 비활성이기 때문에, 프로세서 코어(14)는 전력 레벨 활동 그래프(54)에 도시되는 바와 같이, 시간 t0에서 PC(예를 들어, 전력 붕괴 레벨)와 동일한 전력 레벨 P를 가지는 감소된 전력 모드에 있다. 본원에서 사용되는 바와 같이, 프로세서 코어(14)를 전력 붕괴시키는 것은 메모리(30) 및 로직(32)에 데이터를 보유하는데 필요한 최소 레벨로 프로세서 코어(14)에 공급되는 전력을 감소시키는 것이다. 이 예에서는 PC 가 제로 전력 레벨 P0 보다 크지만, 일부 양상들은 P0와 동일한 PC를 가질 수 있다. 추가로, 시간 t1에서, 스레드 X(0)은 높은 활동 레벨 LH에 의해 예시되는 바와 같이, 활성이 된다. 이에 대한 응답으로, 레이턴시-기반 전력 모드 유닛(12)은 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성한다. 레이턴시-기반 전력 모드 유닛(12)은 또한, 더 높은 전력 모드에 대응하는 전력 모드 세팅(24)을 생성하는 것에 대한 응답으로 인터럽트 출력(36) 상에서 인터럽트(34)를 생성한다. 인터럽트(34)는 스레드-관련 활동을 위한 준비로 시간 t1-2 동안 "웨이크업" 프로시저들을 수행하도록 프로세서 코어(14)를 프롬프트한다. 추가로, 전력 모드 세팅(24)은 전력 제어 유닛들(28(0), 28(1))로 하여금 공칭 전력을 프로세서 코어(14)로 공급하게 하여서, 시간 t1에서 전력 레벨 P를 PN으로 변경한다.
[0030] 도 3a를 계속 참조하면, 시간 t3에서, 명령의 프로세싱의 부분으로서, 스레드 X(0)는 프로세서 코어(14) 외부에 저장되는 데이터에 대한 데이터 액세스를 개시한다. 따라서, 스레드 X(0)은 스레드 활동 그래프(52)에서 시간 t3에서 낮은 활동 레벨 LL에 의해 도시되는 바와 같이, 펜딩 상태로 변경된다. 모든 다른 스레드들 X(1)-X(N)이 여전히 비활성이기 때문에, 워크로드 정보(22)는 프로세서 코어(14)가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시한다. 이 예에서, 전력 모드 정보(18)는 스레드 X(0)에 대한 감소된 전력 모드에 대응하는 전류 데이터 액세스 레이턴시를 표시한다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)를 감소된 전력 모드로 세팅하기 위해서 전력 모드 세팅(24)을 생성한다. 프로세서 코어(14)가 스레드들이 활성이었을 경우와 비교하여 동작하기 위해서 많은 전력을 요구하지 않기 때문에, 전력 제어 유닛들(28(0), 28(1))은 감소된 전력 레벨을 프로세서 코어(14)로 공급하여서, 전력 레벨 P로 하여금 시간 t3에서 PC로 하강하게 한다. 따라서, 스레드 X(0)가 비활성이라기 보다는 펜딩 상태에 있음에도 불구하고, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)가 시간 t3에서 시작하여 감소된 전력 모드에서 동작하는 것을 가능하게 한다.
[0031] 도 3a를 계속 참조하면, 프로세서 코어(14)는 높은 활동 레벨 LH에 의해 예시되는 바와 같이, 시간 t4에서 펜딩 스레드 X(0)에 대한 프로세서 코어(14) 외부로부터 요청되는 데이터를 수신하여서, 스레드 X(0)로 하여금 활성이 되게 한다. 이것은 레이턴시-기반 전력 모드 유닛(12)으로 하여금 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하게 한다. 전력 모드 세팅(24)은 전력 제어 유닛들(28(0), 28(1))로 하여금 공칭 전력을 프로세서 코어(14)로 공급하게 하여서, 전력 레벨 P로 하여금 시간 t4에서 PN으로 상승하게 한다. 추가로, 레이턴시-기반 전력 모드 유닛(12)은 또한, 시간 t4-5 동안 웨이크업 프로시저들을 수행하도록 프로세서 코어(14)를 프롬프트하는 인터럽트(34)를 생성한다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 스레드 X(0)이 요청되는 데이터를 수신하였을 경우 시간 t4까지, 스레드 X(0)가 펜딩이 되었을 경우 시간 t3에서 시작하는 PC에서 동작하도록 프로세서 코어(14)를 인에이블하였다.
[0032] 이와 관련하여, 도 3a를 계속 참조하면, 시간 t3-4는 스레드 X(0)을 펜딩 상태로 배치한 프로세서 코어(14) 외부에서의 데이터 액세스와 연관된 데이터 액세스 레이턴시에 대응한다. 따라서, 프로세서 코어(14)는 시간 t3-4 동안 PC로 세팅된 전력 레벨 P를 가지는 감소된 전력 모드로 유지되었고, 그에 의해 그 시간프레임 전반에 걸쳐 프로세서 코어(14) 내에서 전력을 보존한다. 스레드 X(0)이 펜딩 상태에 있었을 동안 전력 레벨 P를 PC로 감소시킴으로써 프로세서 코어(14)에서 보존되는 전력의 양은 도 3b에 예시된다. 더 구체적으로, 전력 총계(55(0))는 스레드 X(0)이 펜딩 상태에 있었을 동안 전력 레벨 P가 PN으로 유지되었을 경우 보존되지 않은 전력과 비교하여, PN-PC의 총 전력이 시간 t3-4 동안 프로세서 코어(14)에서 보존되었음을 도시한다.
[0033] 도 3a를 계속 참조하면, 시간 t6에서, 스레드 X(0)은 프로세서 코어(14) 외부에 저장되는 데이터에 대한 데이터 액세스를 개시하고, 따라서, 스레드 X(0)은 낮은 활동 레벨 LL에 의해 예시되는 바와 같이, 펜딩 상태로 변경된다. 시간 t3-4 동안의 이전 데이터 액세스와 유사하게, 전력 모드 정보(18)는 스레드 X(0)에 대한 감소된 전력 모드에 대응하는 전류 데이터 액세스 레이턴시를 표시한다. 모든 다른 스레드들 X(1)-X(N)가 비활성인 반면 스레드 X(0)가 펜딩이기 때문에, 워크로드 정보(22)는 프로세서 코어(14)가 펜딩 상태에서 하나의 스레드를 가지고 활성 상태에서 어떠한 스레드들도 가지지 않음을 표시한다. 전력 모드 정보(18) 및 워크로드 정보(22)에 기초하여, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)를 감소된 전력 모드로 세팅하기 위해서 전력 모드 세팅(24)을 생성한다. 따라서, 전력 제어 유닛들(28(0), 28(1))은 감소된 전력 레벨을 프로세서 코어(14)로 공급하여서, 전력 레벨 P로 하여금 시간 t6에서 PR로 하강하게 한다. 프로세서 코어(14) 외부로부터 요청되는 데이터를 수신할 시, 스레드 X(0)은 높은 활동 레벨 LH에 의해 예시되는 바와 같이, 시간 t7에서 활성이 된다. 이것은 레이턴시-기반 전력 모드 유닛(12)으로 하여금 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하게 한다. 추가로, 레이턴시-기반 전력 모드 유닛(12)은 또한, 시간 t7-8 동안 웨이크업 프로시저들을 수행하도록 프로세서 코어(14)를 프롬프트하는 인터럽트(34)를 생성한다. 전력 모드 세팅(24)은 전력 제어 유닛들(28(0), 28(1))로 하여금 공칭 전력을 프로세서 코어(14)로 공급하여서, 전력 레벨 P로 하여금 시간 t7에서 PN으로 상승하게 한다.
[0034] 도 3a를 계속 참조하면, 시간 t6-7은 시간 t6에서 스레드 X(0)을 펜딩 상태로 배치하였던 프로세서 코어(14) 외부에서의 데이터 액세스와 연관된 데이터 액세스 레이턴시에 대응한다. 따라서, 프로세서 코어(14)는 시간 t6-7 동안 PR로 세팅된 전력 레벨 P를 가지는 감소된 전력 모드로 유지되었고, 그에 의해 그 시간프레임 전반에 걸쳐 프로세서 코어(14) 내에서 전력을 보존한다. 스레드 X(0)이 펜딩 상태에 있었을 동안 전력 레벨 P를 PR로 감소시킴으로써 프로세서 코어(14)에서 보존되는 전력의 양은 도 3b에 예시된다. 더 구체적으로, 전력 총계(55(1))는 스레드 X(0)이 펜딩 상태에 있었을 동안 전력 보존의 결여가 전력 레벨 P가 PN으로 유지되게 한 것과는 대조적으로, PN-PR의 총 전력이 시간 t6-7 동안 프로세서 코어(14)에서 보존되었음을 도시한다.
[0035] 특히, 프로세서 코어(14)가 시간 t3-4 및 시간 t6-7 동안 감소된 전력 모드에서 동작하지만, 전력 레벨 PC는 시간 t6-7 동안의 전력 레벨 PR보다 시간 t3-4 동안 더 낮다. 감소된 전력 모드의 별개의 인스턴스들 동안의 전력 레벨 P의 이러한 차는 대응하는 데이터 액세스 레이턴시에 의존하는 전력 레벨 P에 기인한다. 예를 들어, 시간 t3-4와 연관된 데이터 액세스 레이턴시는 시간 t6-7과 연관된 데이터 액세스 레이턴시보다 길다. 프로세서 코어(14)는, 이러한 긴 데이터 액세스 레이턴시 동안 보존되는 전력이 전력 붕괴 상태로부터 프로세서 코어(14)를 웨이크업하는 것과 연관된 임의의 성능 패널티보다 크기 때문에, 시간 t3-4 동안 전력 레벨 PC에서 동작할 수 있다. 반대로, 시간 t6-7과 연관된 것만큼 짧은 데이터 액세스 레이턴시 동안 프로세서 코어(14)를 전력 붕괴시킴으로써 보존되는 전력은 이러한 성능 패널티를 정당화하지 않을 수 있다. 그러나, 전력 레벨 PR로부터 프로세서 코어(14)를 웨이크업하는 것은 전력 레벨 PC와 비교하여 더 작은 성능 패널티를 가진다. 따라서, 단지 시간 t6-7 동안 프로세서 코어(14)를 전력 레벨 PR로 감소시키는 것은 전력 레벨 PR로부터 프로세서 코어(14)를 웨이크업하는 것과 연관된 성능 패널티를 정당화하도록 충분한 전력을 보존할 수 있다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)가 특정 데이터 액세스를 대기하여야 하는 시간의 양에 대응하는 전력 모드 세팅(24)을 생성하도록 구성된다.
[0036] 도 1을 참조하면, 본원에서 개시되는 양상들의 특정 세부사항들이 이제 제공된다. 이 양상에서, 레이턴시-기반 전력 모드 유닛(12) 상에서의 전력 모드 입력(16)은 프로세서 코어(14) 내의 메모리(30)로부터 전력 모드 정보(18)를 수신하도록 구성된다. 대안적으로, 전력 모드 정보(18)는 프로세서 코어(14) 외부의 또 다른 메모리에 저장될 수 있다. 앞서 설명된 바와 같이, 전력 모드 정보(18)는 어떤 전력 모드가 프로세서 코어(14)로 공급되어야 하는지와 관련된 정보를 포함한다. 더 구체적으로, 전력 모드 정보(18)는 프로세서 코어(14) 외부에서의 데이터 액세스의 레이턴시 및 데이터 액세스에 대응하는 전력 모드와 관련된 정보를 포함할 수 있다. 비-제한적 예로서, 전력 모드 정보(18)는 데이터가 요청되는 데이터 인터페이스의 식별자, 데이터 인터페이스로부터의 데이터에 액세스하는 것에 대응하는 레이턴시 및 특정 데이터 인터페이스에 대응하는 전력 모드를 포함할 수 있다. 이러한 방식으로, 감소된 전력 모드는 프로세서 코어(14) 외부의 특정 데이터 인터페이스로부터의 데이터에 액세스하는 것과 연관된 레이턴시와 연관될 수 있다. 비-제한적 예로서, 레벨 투(L2) 캐시 미스 이후 메모리의 더 낮은 레벨로부터의 데이터에 액세스하는 것은, 이러한 데이터 액세스가 비교적 긴 레이턴시를 가지는 경우 감소된 전력 모드와 연관될 수 있다. 유사하게, 비교적 긴 데이터 액세스 레이턴시를 가지는 캐싱가능하지 않은 주변기기로부터의 데이터에 액세스하는 것은 또한, 감소된 전력 모드에 대응할 수 있다.
[0037] 도 1을 계속 참조하면, 레이턴시-기반 전력 모드 유닛(12)은 스레드 워크로드 입력(20)을 통해 프로세서 코어(14) 내의 로직(32)으로부터 워크로드 정보(22)를 수신하도록 구성된다. 앞서 설명된 바와 같이, 워크로드 정보(22)는 프로세서 코어(14)에서의 스레드들 X(0)-X(N)의 상태와 관련된 정보를 포함한다. 특히, 워크로드 정보(22)는 프로세서 코어(14)가 펜딩 상태에서 하나 또는 그 초과의 스레드들 X(0)-X(N)을 가지고, 활성 상태에서 어떠한 스레드들 X(0)-X(N)도 가지지 않는지, 활성 상태에서 적어도 하나의 스레드 X를 가지는지 아니면 모두가 비활성 스레드들 X(0)-X(N)인지를 표시하는 정보를 포함할 수 있다. 따라서, 전력 모드 정보(18) 및 워크로드 정보(22)는 펜딩 상태에서의 스레드들 X(0)-X(N) 중 하나가 감소된 전력 모드와 연관된 데이터 액세스 레이턴시를 가지는지 여부 및 프로세서 코어(14)의 전류 활동이 전력의 감소를 지원할 수 있는지 여부에 관한 세부사항들을 제공한다.
[0038] 도 1을 계속 참조하면, 이 양상에서, 전력 모드 세팅(24)은 프로세서 코어(14)에 존재하는 조건들에 기초하여 변경될 수 있다. 예를 들어, 워크로드 정보(22)가 프로세서 코어(14)에서의 모든 스레드들 X(0)-X(N)이 비활성임을 표시하면, 레이턴시-기반 전력 모드 유닛(12)은 감소된 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하도록 추가로 구성된다. 특히, 어떠한 스레드들 X(0)-X(N)도 명령들을 프로세싱하고 있지 않은 경우 프로세서 코어(14) 내의 메모리(30) 및 로직(32)이 전체 전력을 요구하지 않기 때문에, 어떠한 스레드들 X(0)-X(N)도 펜딩 또는 활성 상태에 있지 않으면, 프로세서 코어(14)는 감소된 전력 모드를 지원할 수 있다. 추가적으로, 레이턴시-기반 전력 모드 유닛(12)은 또한, 감소된 전력 모드에 대한 조건들이 충족되지 않으면 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하도록 구성된다. 더 구체적으로, 전력 모드 정보(18)가 펜딩 상태에서의 스레드들 X(0)-X(N) 중 하나의 스레드의 데이터 액세스 레이턴시가 감소된 전력 모드에 대응하지 않음을 표시하면, 생성되는 전력 모드 세팅(24)은 더 높은 전력 모드를 반영할 것이다. 유사하게, 워크로드 정보(22)가 프로세서 코어(14)가 활성 상태에서의 적어도 하나의 스레드 X를 가짐을 표시하면, 전력 모드 세팅(24)은 더 높은 전력 모드에서 실행되도록 프로세서 코어(14)를 세팅할 것이다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)의 전류 요건들에 따라 전력 모드 세팅(24)을 생성하도록 구성된다.
[0039] 도 1을 계속 참조하면, 이 양상에서, 레이턴시-기반 전력 모드 유닛(12)은 또한, 생성되는 전력 모드 세팅(24)이 더 높은 전력 모드를 표시하는 경우 프로세서 코어(14)에 통지하도록 구성된다. 특히, 프로세서 코어(14)는, 감소된 전력 모드를 더 높은 전력 모드로 트랜지션(흔히 프로세서 코어(14)가 "웨이크업"하는 것으로 지칭됨)하기 위해서 특정 단계들을 취할 필요가 있을 수 있다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 더 높은 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하는 것에 대한 응답으로 인터럽트 출력(36) 상에서 인터럽트(34)를 생성하도록 구성된다. 인터럽트(34)는 더 높은 전력 모드에서의 동작을 준비하기 위해서 프로세서 코어(14)에 통지하도록 프로세서 코어(14) 내의 로직(32)에 제공된다. 대안적으로, 레이턴시-기반 전력 모드 유닛(12)은 감소된 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하는 것에 대한 응답으로 인터럽트(34)를 생성하도록 구성될 수 있다. 이러한 방식으로, 인터럽트(34)는 로직(32)이 더 높은 전력 모드로부터 감소된 전력 모드로 트랜지션하기 위해서 단계들을 취할 수 있도록 프로세서 코어(14) 내의 로직(32)에 제공될 수 있다.
[0040] 도 1을 계속 참조하면, 이 양상에서, 레이턴시-기반 전력 모드 유닛(12)이 프로세서 코어(14) 내에 배치된다. 그러나, 레이턴시-기반 전력 모드 유닛(12)은 다른 양상들에서 그렇지 않으면 프로세서 코어(14) 외부에 배치될 수 있으며, 전력 보존 이익들을 생성한다. 따라서, CPU 서브시스템(10) 내의 레이턴시-기반 전력 모드 유닛(12)의 위치와는 관계 없이 단지 프로세싱되는 스레드들 X(0)-X(N)이 펜딩 상태에 있으면, 스레드들 X(0)-X(N)이 프로세싱되고 있는 경우에도, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)에서 전력을 보존하는 것을 도울 수 있다.
[0041] 스레드 상태 및 임의의 대응하는 데이터 액세스 레이턴시들을 고려하는 것과 더불어, 레이턴시-기반 전력 모드 유닛(12)은 전력 모드 세팅(24)을 생성하는 경우 스레드들 X(0)-X(N)의 추후 활동의 타이밍을 고려할 수 있다. 예를 들어, 스레드들 X(0)-X(N) 중 하나가 동일한 또는 또 다른 스레드 X(0)-X(N)이 펜딩 상태로 변경된 이후 비교적 짧은 시간에 활성이 되도록 스케줄링되면, 이러한 짧은 기간의 시간에 전력을 감소시키도록 요구되는 오버헤드는 임의의 전력 보존보다 더 클 수 있다. 이와 관련하여, 도 4는 스레드들 X(0)-X(N) 중 하나가 얼마나 빨리 데이터 액세스 요청 이후 활성이 될 수 있는지에 부분적으로 기초하여 프로세서 코어(14)의 전력 모드들을 제어하기 위한 도 1의 레이턴시-기반 전력 모드 유닛(12)에 의해 이용되는 예시적 프로세스(56)를 예시한다.
[0042] 도 4를 계속 참조하면, 블록(40), 블록(42), 블록(44), 블록(46), 블록(48) 및 블록(50)에서의 단계들은 도 2에서 앞서 설명된 바와 동일하다. 그러나, 블록(44)에서의 조건들 둘 다가 존재하면, 감소된 전력 모드에 대한 전력 모드 세팅(24)을 생성하기 보다는, 레이턴시-기반 전력 모드 유닛(12)은 추가 결정을 수행한다. 특히, 레이턴시-기반 전력 모드 유닛(12)은 워크로드 정보(22)가 프로세서 코어(14)가 프로세서 코어(14) 외부에서의 데이터 액세스의 개시 이후 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 스레드 X를 가짐을 표시하는지 여부를 결정한다(블록(58)). 예를 들어, 다른 스레드들 X(1)-X(N)이 활성 상태에 있지 않은 동안 제 1 스레드 X(0)은 펜딩 상태로 트랜지션할 수 있다. 제 2 스레드 X(1)이 제 1 스레드 X(0)이 펜딩 상태로 트랜지션한 이후에 곧 활성이 되도록 스케줄링되는 경우, 일단 제 2 스레드 X(1)이 활성 상태에 있으면, 단지 더 높은 전력 모드에 진입하여야 하기 위해서 프로세서 코어(14)가 감소된 전력 모드에 진입하는 것은 비효율적일 수 있다. 따라서, 정의된 임계 시간은 감소된 전력 모드에 진입하는 것을 정당화하기 위해서 프로세서 코어(14)가 펜딩 상태에서 하나 또는 그 초과의 스레드들 X(0)-X(N)을 가지고 활성 상태에서 어떠한 스레드들 X(0)-X(N)도 가지지 않을 필요가 있는 시간의 최소 듀레이션을 표현할 수 있다. 프로세서 코어(14)를 웨이크업하는 것과 연관된 성능 패널티는 이러한 타이밍을 결정할 시 중요한 인자일 수 있다.
[0043] 이러한 방식으로, 도 4를 계속 참조하면, 스레드 X가 블록(58)에서 정의된 임계 시간 내에 활성이 되도록 스케줄링되면, 레이턴시-기반 전력 모드 유닛(12)은 더 높은 전력 모드에 대한 전력 모드 세팅(24)을 생성하도록 구성된다(블록(50)). 반대로, 스레드들 X(0)-X(N) 중 어떠한 것도 블록(58)에서 정의된 임계 시간 내에 활성이 되도록 스케줄링되지 않으면, 레이턴시-기반 전력 모드 유닛(12)은 감소된 전력 모드에 대한 전력 모드 세팅(24)을 생성하도록 구성된다(블록(46)). 블록(46) 또는 블록(50)에서 전력 모드 세팅(24)의 생성 시, 레이턴시-기반 전력 모드 유닛(12)은 블록(48)에서, 프로세서 코어(14)에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛들(28(0), 28(1))에 전력 모드 세팅(24)을 제공하도록 구성된다. 프로세스(56)를 이용함으로써, 레이턴시-기반 전력 모드 유닛(12)은 단지 프로세싱되는 스레드들 X(0)-X(N)이 펜딩 상태에 있으면 그리고 대응하는 데이터 액세스 레이턴시들이 감소된 전력 모드에 진입하는 프로세서 코어(14)를 정당화하면, 스레드들 X(0)-X(N)이 프로세싱되고 있는 경우에도, 프로세서 코어(14)에서 전력 보존을 가능하게 한다.
[0044] 이와 관련하여, 도 5는 모든 다른 스레드들 X(1)-X(N) (도시되지 않음)이 비활성으로 유지되는 동안, 스레드 X(0)가 프로세서 코어(14) 외부에서의 데이터 액세스의 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 경우 도 1의 프로세서 코어(14)의 스레드 활동 그래프(60) 및 대응하는 전력 레벨 활동 그래프(62)를 예시한다. 최대 시간 t6까지의 스레드 활동 그래프(60) 및 전력 레벨 활동 그래프(62)의 트랜지션들 및 관련 타이밍은 도 3a에서 최대 시간 t6에서 스레드 활동 그래프(52) 및 전력 레벨 활동 그래프(54)의 트랜지션들 및 관련 타이밍과 동일하다.
[0045] 그러나, 도 5의 시간 t6에서, 스레드 X(0)은 프로세서 코어(14) 외부에 저장되는 데이터에 대한 데이터 액세스를 개시하고, 따라서, 스레드 X(0)은 낮은 활동 레벨 LL에 의해 예시되는 바와 같이, 펜딩 상태로 변경된다. 그러나, 다른 스레드들이 활성 상태에 있지 않은 동안 스레드 X(0)이 펜딩 상태에 있지만, 스레드 X(0)은 높은 활동 레벨 LH에 의해 예시되는 바와 같이, 시간 t9에서 활성이 되도록 스케줄링된다. 추가로, 시간 t9는 프로세서 코어(14)에 대한 정의된 임계 시간 내에 발생한다. 결과적으로, 레이턴시-기반 전력 모드 유닛(12)이 감소된 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하는 것보다는, 전력 모드 세팅(24)은 계속 더 높은 전력 모드에 대응한다. 따라서, 전력 레벨 P는, 시간 t9가 정의된 임계 시간 내에 있지 않으면 PC 또는 PR로 하강하는 것과는 대조적으로, 시간 t6-9 동안 PN으로 유지된다. 추가로, 높은 활동 레벨 LH에 의해 예시되는 바와 같이, 스레드 X(0)이 시간 t9에서 활성이 되는 경우, 전력 레벨 P는 PN으로 유지된다. 특히, 프로세서 코어(14)가 시간 t6-9 동안 PN으로 유지되었기 때문에, 프로세서 코어(14)는 스레드 X(0)이 시간 t9에서 활성이 될 시, 그것의 웨이크업 프로시저들을 완료하도록 시간을 요구하지 않았다. 이러한 방식으로, 스레드가 프로세서 코어(14) 외부에서의 데이터 액세스의 개시 이후 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 경우 더 높은 전력 모드에 대한 전력 모드 세팅(24)을 생성하도록 레이턴시-기반 전력 모드 유닛(12)을 구성시키는 것은 프로세싱 시간을 감소시킬뿐만 아니라 전력을 보존할 수 있다.
[0046] 추가적으로, 도 6은 2개의 스레드들이 펜딩, 활성 및 비활성 상태 사이에서 변경되는 경우 도 1의 프로세서 코어(14)의 스레드 활동 그래프(64) 및 대응하는 전력 레벨 활동 그래프(66)를 예시한다. 이러한 방식으로, 스레드 활동 그래프(64)는 모든 다른 스레드들 X(2)-X(N)(도시되지 않음)이 비활성으로 유지되는 동안, 제 1 스레드 X(0) 및 제 2 스레드 X(1)의 활동을 예시한다.
[0047] 도 6을 계속 참조하면, 스레드 활동 그래프(64)는 낮은 활동 레벨들 LL에 의해 예시되는 바와 같이, 시간 t10에서 비활성 상태에서 제 1 스레드 X(0) 및 제 2 스레드 X(1)을 도시한다. 따라서, 전력 레벨 활동 그래프(66)는 전력 레벨 P가 시간 t10에서 PC에 있는 것을 도시한다. 추가로, 높은 활동 레벨들 LH에 의해 도시되는 바와 같이, 제 1 스레드 X(0) 및 제 2 스레드 X(1) 둘 다는 시간 t11에서 활성이 된다. 이것은 레이턴시-기반 전력 모드 유닛(12)으로 하여금 프로세서 코어(14)를 더 높은 전력 모드로 세팅하기 위해서 전력 모드 세팅(24)을 생성하게 한다. 더 높은 전력 모드는 전력 제어 유닛들(28(0), 28(1))로 하여금 공칭 전력을 프로세서 코어(14)에 공급하게 하고, 이것은 차례로, 전력 레벨 P로 하여금 시간 t11에서 PN으로 상승하게 한다. 낮은 활동 레벨들 LL에 의해 도시되는 바와 같이, 시간 t12에서, 제 1 스레드 X(0) 및 제 2 스레드 X(1) 둘 다는 펜딩 상태로 트랜지션한다. 그러나, 전력 모드 정보(18)는 스레드 X(1)이 시간 t15에서 활성이 되도록 스케줄링될 때까지 제 2 스레드 X(1)에 대한 감소된 전력 모드에 대응하는 전류 데이터 액세스 레이턴시를 표시하는 반면, 제 1 스레드 X(0)은 높은 활동 레벨 LH에 의해 도시되는 바와 같이, 시간 t13에서 다시 활성이 되도록 스케줄링된다. 시간 t13은 프로세서 코어(14)에 대한 정의된 임계 시간 내에 발생하여서, 레이턴시-기반 전력 모드 유닛(12)이 시간t12에서 프로세서 코어(14)를 더 높은 전력 모드로 세팅하기 위해서 전력 모드 세팅(24)을 생성하게 한다. 따라서, 전력 레벨 P는 시간 t12-14 동안 PN으로 유지된다. 특히, 이 양상에서, 전력 모드 세팅(24)의 이전 인스턴스가 더 높은 전력 모드와 연관되었지만, 레이턴시-기반 전력 모드 유닛(12)은 시간 t12에서 더 높은 전력 모드와 연관된 전력 모드 세팅(24)을 생성하도록 구성된다. 그러나, 전력 모드 세팅(24)의 저장된 이전 인스턴스가 더 높은 전력 모드 또는 감소된 전력 모드 각각과 연관되는 경우, 레이턴시-기반 전력 모드 유닛(12)의 다른 양상들은 프로세서 코어(14)를 더 높은 전력 모드 또는 감소된 전력 모드로 세팅하기 위해서 전력 모드 세팅(24)의 생성을 중지할 수 있다. 예를 들어, 전력 모드 세팅(24)의 저장된 이전 인스턴스는 레이턴시-기반 전력 모드 유닛(12) 내의 유닛 메모리(37)에 저장될 수 있다.
[0048] 도 6을 계속 참조하면, 제 1 스레드 X(0)은 그것의 명령의 프로세싱을 완료하며, 낮은 활동 레벨 LL에 의해 예시되는 바와 같이, 시간 t14에서 비활성이 된다. 그러나, 제 2 스레드 X(1)은 시간 t14에서 펜딩 상태에서 유지되며, 높은 활동 레벨 LH에 의해 도시되는 바와 같이, 시간 t15에서 활성이 되도록 스케줄링된다. 이 예에서, 제 2 스레드 X(1)은 감소된 전력 모드와 연관된 나머지 데이터 액세스 레이턴시를 가진다. 추가적으로, 단지 활성이 되도록 스케줄링되는 스레드는, 프로세서 코어(14)의 정의된 임계 시간 내에 있지 않은 시간 t15에서 제 2 스레드 X(1)이다. 따라서, 레이턴시-기반 전력 모드 유닛(12)은 시간 t14에서 감소된 전력 모드에서 동작하도록 프로세서 코어(14)를 세팅하기 위해서 전력 모드 세팅(24)을 생성하도록 구성된다. 결과적으로, 전력 레벨 P는 시간 t14-15 동안 PC로 세팅된다. 높은 활동 레벨 LH에 의해 도시되는 바와 같이, 제 2 스레드 X(1)은 시간 t15에서 활성 상태로 변경된다. 레이턴시-기반 전력 모드 유닛(12)은 전력 모드 세팅(24)을 더 높은 전력 모드로 생성하여서, 전력 레벨 P가 시간 t15에서 PN으로 리턴하게 한다. 이러한 방식으로, 레이턴시-기반 전력 모드 유닛(12)은 프로세서 코어(14)가 심지어 다수의 스레드들이 펜딩, 활성 및 비활성 상태 사이에서 변경될 때에도 전력을 보존하게 하는 것을 가능하게 한다.
[0049] 본원에서 개시되는 양상들에 따른, 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들이 적응되는 캐시 프리페치 회로들 및/또는 캐시 메모리 시스템들은 임의의 프로세서-기반 디바이스에서 제공되거나 또는 그 내부에 통합될 수 있다. 제한 없이, 예들은 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, PDA(personal digital assistant), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, DVD(digital video disc) 플레이어 및 휴대용 디지털 비디오 플레이어를 포함한다.
[0050] 이와 관련하여, 도 7은 도 1에 예시되는 레이턴시-기반 전력 모드 유닛(12)을 이용할 수 있는 프로세서-기반 시스템(68)의 예를 예시한다. 이 예에서, 프로세서-기반 시스템(68)은 하나 또는 그 초과의 CPU들(70)을 포함하고, 이들 각각은 하나 또는 그 초과의 프로세서들(72)을 포함한다. CPU(들)(70)는, 일시적으로 저장되는 데이터로의 고속 액세스를 위해서 프로세서(들)(72)에 커플링된 캐시 메모리(74)를 가질 수 있다. CPU(들)(70)는 시스템 버스(76)에 커플링되며, 프로세서-기반 시스템(68)에 포함되는 마스터 및 슬래이브 디바이스들을 상호커플링시킬 수 있다. 잘 알려진 바와 같이, CPU(들)(70)는 시스템 버스(76) 상에서 어드레스, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(70)는 슬래이브 디바이스의 예로서 메모리 제어기(78)로 버스 트랜잭션 요청들을 통신할 수 있다. 도 7에 예시되지 않지만, 다수의 시스템 버스들(76)이 제공될 수 있으며, 여기서, 각각의 시스템 버스(76)는 상이한 패브릭을 구성한다.
[0051] 다른 마스터 및 슬래이브 디바이스들은 시스템 버스(76)에 연결될 수 있다. 도 7에 예시되는 바와 같이, 이 디바이스들은 예들로서 메모리 시스템(80), 하나 또는 그 초과의 입력 디바이스들(82), 하나 또는 그 초과의 출력 디바이스들(84), 하나 또는 그 초과의 네트워크 인터페이스 디바이스들(86) 및 하나 또는 그 초과의 디스플레이 제어기들(88)을 포함할 수 있다. 입력 디바이스(들)(82)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나, 이들에 제한되는 것은 아님) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(84)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나, 이들에 제한되는 것은 아님) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(86)는 네트워크(90)로의 그리고 네트워크(90)로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스들일 수 있다. 네트워크(90)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, LAN(local area network), WLAN(wide local area network) 및 인터넷을 포함하는(그러나, 이들에 제한되는 것은 아님) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(86)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 메모리 시스템(80)은 하나 또는 그 초과의 메모리 유닛들(92(0-N))을 포함할 수 있다.
[0052] CPU(들)(70)는 또한, 하나 또는 그 초과의 디스플레이들(94)에 전송된 정보를 제어하기 위해서 시스템 버스(76) 상에서 디스플레이 제어기(들)(88)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(88)는 하나 또는 그 초과의 비디오 프로세서들(96)을 통해 디스플레이될 정보를 디스플레이(들)(94)에 전송하고, 이는 디스플레이(들)(94)에 적합한 포맷으로 디스플레이될 정보를 프로세싱한다. 디스플레이(들)(94)는 CRT(cathode ray tube), LCD(liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나, 이들에 제한되는 것이 아님) 임의의 타입의 디스플레이를 포함할 수 있다.
[0053] 당업자들은, 본원에서 개시되는 양상들과 관련하여 설명되는 다양한 예시적 로직 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독가능한 매체에 저장되고 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 예들로서, 본원에서 설명되는 마스터 및 슬래이브 디바이스들은 임의의 회로, 하드웨어 컴포넌트, IC(integrated circuit) 또는 IC 칩에서 이용될 수 있다. 본원에서 개시되는 메모리는 임의의 타입 및 크기의 메모리일 수 있으며, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이 상호교환가능성을 명확하게 예시하기 위해서, 다양한 예시적 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능적 관점에서 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 전체 시스템 상에 부과되는 특정 애플리케이션, 설계 선택들 및/또는 설계 제약들에 의존한다. 당업자들은 설명되는 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본 개시 내용의 범위로부터의 이탈을 야기하게 하는 것으로 해석되어서는 안 된다.
[0054] 본원에서 개시되는 양상들과 관련하여 설명되는 다양한 예시적 로직 블록들, 모듈들 및 회로들은 프로세서, DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 또는 다른 프로그램가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 본원에서 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 결합으로 구현 또는 수행될 수 있다. 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 및 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로서 구현될 수 있다.
[0055] 본원에서 개시되는 양상들은 하드웨어로 그리고 하드웨어에 저장된 명령들로 구현될 수 있고, 예를 들어, RAM(Random Access Memory), 플래시 메모리, ROM(Read Only Memory), EPROM(Electrically Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 레지스터들, 하드 디스크, 이동식(removable) 디스크, CD-ROM 또는 당해 기술 분야에 공지되는 임의의 다른 형태의 컴퓨터 판독가능한 매체에 상주할 수 있다. 예시적 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 그리고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC에 상주할 수 있다. ASIC는 원격국에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에서 별개의 컴포넌트들로서 상주할 수 있다.
[0056] 또한, 본원에서의 예시적 양상들 중 임의의 것에서 설명되는 동작 단계들은 예들 및 논의를 제공하기 위해서 설명된다는 점이 주목된다. 설명되는 동작들은 예시되는 시퀀스들 외의 다수의 상이한 시퀀스들로 수행될 수 있다. 게다가, 단일 동작 단계에서 설명되는 동작들은 실제로 다수의 상이한 단계들로 수행될 수 있다. 추가적으로, 예시적 양상들에서 논의되는 하나 또는 그 초과의 동작 단계들은 결합될 수 있다. 흐름도 도면들에서 예시되는 동작 단계들에 당업자에게 쉽게 명백할 바와 같이 다수의 상이한 수정들이 이루어질 수 있다는 것이 이해될 것이다. 당업자들은 또한, 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광 필드들 또는 광 입자들 또는 이들의 임의의 결합으로 표현될 수 있다.
[0057] 본 개시 내용의 이전 설명은 임의의 당업자가 본 개시 내용을 실시하거나 또는 사용하는 것을 가능하게 하도록 제공된다. 본 개시 내용에 대한 다양한 수정들은 당업자들에게 쉽게 명백할 것이고, 본원에서 정의된 일반적인 원리들은 본 개시 내용의 사상 또는 범위를 벗어나지 않으면서 다른 변형들에 적용될 수 있다. 따라서, 본 개시 내용은 본원에서 설명되는 예들 및 설계들에 제한되는 것으로 의도된 것이 아니라, 본원에서 개시되는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (31)

  1. 프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반(latency-based) 전력 모드 유닛으로서,
    프로세서 코어 외부에서의 데이터 액세스를 위해 상기 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하도록 구성되는 전력 모드 입력 ― 상기 전력 모드 정보는, 적어도 하나의 데이터 인터페이스로부터 데이터를 액세스하는 데이터 액세스 레이턴시 및 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드를 포함함 ―; 및
    상기 프로세서 코어의 스레드(thread)들의 상태와 관련된 워크로드(workload) 정보를 수신하도록 구성되는 스레드 워크로드 입력을 포함하고,
    상기 레이턴시-기반 전력 모드 유닛은, 상기 워크로드 정보가 상기 프로세서 코어가 펜딩(pending) 상태에서 하나 또는 그 초과의 스레드들을 갖고 활성 상태에서 어떠한 스레드들도 갖지 않음을 표시하고, 상기 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 상기 하나 또는 그 초과의 스레드들 각각의 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드 및 상기 데이터 액세스 레이턴시를 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하도록 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  2. 제 1 항에 있어서,
    상기 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 상기 전력 모드 세팅을 제공하기 위해서 상기 전력 모드 세팅을 전력 모드 출력에 제공하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  3. 제 1 항에 있어서,
    상기 감소된 전력 모드는 전력 붕괴 레벨을 포함하는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  4. 제 3 항에 있어서,
    상기 감소된 전력 모드는 공칭 전력 레벨보다 낮고 상기 전력 붕괴 레벨보다 높은 감소된 전력 레벨을 더 포함하는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  5. 제 1 항에 있어서,
    상기 전력 모드 정보가 상기 감소된 전력 모드에 대응하지 않는 데이터 액세스 레이턴시를 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  6. 제 5 항에 있어서,
    상기 프로세서 코어 외부에서의 상기 데이터 액세스의 개시를 추적하고; 그리고
    상기 워크로드 정보가 상기 프로세서 코어가 상기 프로세서 코어 외부에서의 데이터 액세스의 개시 이후 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 스레드를 가짐을 표시하면, 상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  7. 제 5 항에 있어서,
    상기 전력 모드 세팅의 저장된 이전 인스턴스가 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하지 않고; 그리고
    상기 전력 모드 세팅의 상기 저장된 이전 인스턴스가 상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하면, 상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하지 않도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  8. 제 1 항에 있어서,
    상기 워크로드 정보가 상기 프로세서 코어가 활성 상태에서 적어도 하나의 스레드를 가짐을 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  9. 제 8 항에 있어서,
    상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위한 상기 전력 모드 세팅의 생성에 대한 응답으로, 상기 전력 모드 세팅이 상기 더 높은 전력 모드로 세팅됨을 표시하는 상기 프로세서 코어로의 인터럽트(interrupt)를 생성하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  10. 제 1 항에 있어서,
    상기 워크로드 정보가 상기 프로세서 코어의 모든 스레드들이 비활성임을 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하도록 추가로 구성되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  11. 제 1 항에 있어서,
    상기 레이턴시-기반 전력 모드 유닛은 상기 프로세서 코어 외부에 배치되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  12. 제 1 항에 있어서,
    상기 레이턴시-기반 전력 모드 유닛은 상기 프로세서 코어 내에 배치되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  13. 제 1 항에 있어서,
    상기 데이터 액세스는,
    레벨 투(L2) 캐시 미스로부터 발생하는 메모리로부터의 로드; 또는
    캐싱가능하지 않은 주변기기로부터의 로드를 포함하는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  14. 제 1 항에 있어서,
    IC(integrated circuit)로 통합되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  15. 제 1 항에 있어서,
    셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, PDA(personal digital assistant), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, DVD(digital video disc) 플레이어 및 휴대용 디지털 비디오 플레이어로 구성되는 그룹으로부터 선택되는 디바이스에 통합되는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 유닛.
  16. 프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 장치로서,
    프로세서 코어 외부에서의 데이터 액세스를 위해 상기 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하기 위한 수단 ― 상기 전력 모드 정보는, 적어도 하나의 데이터 인터페이스로부터 데이터를 액세스하는 데이터 액세스 레이턴시 및 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드를 포함함 ―;
    상기 프로세서 코어의 스레드들의 상태와 관련된 워크로드 정보를 수신하기 위한 수단; 및
    상기 워크로드 정보가 상기 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 갖고 활성 상태에서 어떠한 스레드들도 갖지 않음을 표시하고, 상기 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 상기 하나 또는 그 초과의 스레드들 각각의 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드 및 상기 데이터 액세스 레이턴시를 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하기 위한 수단을 포함하는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 장치.
  17. 제 16 항에 있어서,
    상기 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 수단에 상기 전력 모드 세팅을 제공하기 위한 수단을 더 포함하는,
    프로세서 코어의 전력 모드를 제어하기 위한 레이턴시-기반 전력 모드 장치.
  18. 레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법으로서, 상기 방법은 레이턴시-기반 전력 모드 유닛에 의해 수행되고, 상기 방법은,
    상기 프로세서 코어 외부에서의 데이터 액세스를 위해 상기 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하는 단계 ― 상기 전력 모드 정보는, 적어도 하나의 데이터 인터페이스로부터 데이터를 액세스하는 데이터 액세스 레이턴시 및 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드를 포함함 ―;
    상기 프로세서 코어의 스레드들의 상태와 관련된 워크로드 정보를 수신하는 단계; 및
    상기 워크로드 정보가 상기 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 갖고 활성 상태에서 어떠한 스레드들도 갖지 않음을 표시하고, 상기 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 상기 하나 또는 그 초과의 스레드들 각각의 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드 및 상기 데이터 액세스 레이턴시를 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하는 단계를 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  19. 제 18 항에 있어서,
    상기 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 상기 전력 모드 세팅을 제공하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  20. 제 18 항에 있어서,
    상기 감소된 전력 모드는 전력 붕괴 레벨을 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  21. 제 20 항에 있어서,
    상기 감소된 전력 모드는 공칭 전력 레벨보다 낮고 상기 전력 붕괴 레벨보다 높은 감소된 전력 레벨을 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  22. 제 18 항에 있어서,
    상기 전력 모드 정보가 상기 감소된 전력 모드에 대응하지 않는 데이터 액세스 레이턴시를 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  23. 제 22 항에 있어서,
    상기 프로세서 코어 외부에서의 상기 데이터 액세스의 개시를 추적하는 단계; 및
    상기 워크로드 정보가 상기 프로세서 코어가 상기 프로세서 코어 외부에서의 데이터 액세스의 개시 이후 정의된 임계 시간 내에 활성이 되도록 스케줄링되는 스레드를 가짐을 표시하면, 상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  24. 제 18 항에 있어서,
    상기 워크로드 정보가 상기 프로세서 코어가 활성 상태에서 적어도 하나의 스레드를 가짐을 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  25. 제 24 항에 있어서,
    상기 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위한 상기 전력 모드 세팅의 생성에 대한 응답으로, 상기 전력 모드 세팅이 상기 더 높은 전력 모드로 세팅됨을 표시하는 상기 프로세서 코어로의 인터럽트를 생성하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  26. 제 18 항에 있어서,
    상기 워크로드 정보가 상기 프로세서 코어의 모든 스레드들이 비활성임을 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하는 단계를 더 포함하는,
    레이턴시-기반 결정을 사용하여 프로세서 코어의 전력 모드를 제어하는 방법.
  27. 컴퓨터 실행가능한 명령들이 저장된 비-일시적 컴퓨터 판독가능한 저장 매체로서,
    상기 컴퓨터 실행가능한 명령들은, 프로세서에 의해 실행될 때, 상기 프로세서로 하여금,
    프로세서 코어 외부에서의 데이터 액세스를 위해 상기 프로세서 코어에 공급되는 전력 레벨과 관련된 전력 모드 정보를 수신하게 하고 ― 상기 전력 모드 정보는, 적어도 하나의 데이터 인터페이스로부터 데이터를 액세스하는 데이터 액세스 레이턴시 및 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드를 포함함 ―;
    상기 프로세서 코어의 스레드들의 상태와 관련된 워크로드 정보를 수신하게 하고; 그리고
    상기 워크로드 정보가 상기 프로세서 코어가 펜딩 상태에서 하나 또는 그 초과의 스레드들을 갖고 활성 상태에서 어떠한 스레드들도 갖지 않음을 표시하고, 상기 전력 모드 정보가 감소된 전력 모드에 대응하는 펜딩 상태에서 상기 하나 또는 그 초과의 스레드들 각각의 상기 적어도 하나의 데이터 인터페이스에 대응하는 전력 모드 및 상기 데이터 액세스 레이턴시를 표시하면, 상기 감소된 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 전력 모드 세팅을 생성하게 하는,
    비-일시적 컴퓨터 판독가능한 저장 매체.
  28. 제 27 항에 있어서,
    상기 컴퓨터 실행가능한 명령들은, 상기 프로세서에 의해 실행될 때, 추가로 상기 프로세서로 하여금, 상기 프로세서 코어에 의해 사용되는 전력을 제어하기 위한 전력 제어 유닛에 상기 전력 모드 세팅을 제공하게 하는,
    비-일시적 컴퓨터 판독가능한 저장 매체.
  29. 제 27 항에 있어서,
    상기 컴퓨터 실행가능한 명령들은, 상기 프로세서에 의해 실행될 때, 추가로 상기 프로세서로 하여금, 상기 전력 모드 정보가 상기 감소된 전력 모드에 대응하지 않는 데이터 액세스 레이턴시를 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하게 하는,
    비-일시적 컴퓨터 판독가능한 저장 매체.
  30. 제 27 항에 있어서,
    상기 컴퓨터 실행가능한 명령들은, 상기 프로세서에 의해 실행될 때, 추가로 상기 프로세서로 하여금,
    상기 워크로드 정보가 상기 프로세서 코어가 활성 상태에서 적어도 하나의 스레드를 가짐을 표시하면, 더 높은 전력 모드에서 동작하도록 상기 프로세서 코어를 세팅하기 위해서 상기 전력 모드 세팅을 생성하게 하는,
    비-일시적 컴퓨터 판독가능한 저장 매체.
  31. 삭제
KR1020167029018A 2014-04-22 2015-03-23 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들 KR101826088B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/258,541 2014-04-22
US14/258,541 US9552033B2 (en) 2014-04-22 2014-04-22 Latency-based power mode units for controlling power modes of processor cores, and related methods and systems
PCT/US2015/022014 WO2015164011A1 (en) 2014-04-22 2015-03-23 Latency-based power mode units for controlling power modes of processor cores, and related methods and systems

Publications (2)

Publication Number Publication Date
KR20160145595A KR20160145595A (ko) 2016-12-20
KR101826088B1 true KR101826088B1 (ko) 2018-02-06

Family

ID=52829351

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167029018A KR101826088B1 (ko) 2014-04-22 2015-03-23 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들

Country Status (8)

Country Link
US (1) US9552033B2 (ko)
EP (1) EP3134805B1 (ko)
JP (1) JP6151465B1 (ko)
KR (1) KR101826088B1 (ko)
CN (1) CN106233225B (ko)
BR (1) BR112016024712A2 (ko)
TW (1) TWI595353B (ko)
WO (1) WO2015164011A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10317974B2 (en) * 2016-04-08 2019-06-11 Intel Corporation Power supply unit (PSU) switching
US10459517B2 (en) * 2017-03-31 2019-10-29 Qualcomm Incorporated System and methods for scheduling software tasks based on central processing unit power characteristics
US10726879B2 (en) * 2017-12-08 2020-07-28 Samsung Electronics Co., Ltd. Low-power data transfer from buffer to flash memory
US20220129171A1 (en) * 2020-10-23 2022-04-28 Pure Storage, Inc. Preserving data in a storage system operating in a reduced power mode
US11899944B2 (en) 2021-03-18 2024-02-13 Micron Technology, Inc. Strategic power mode transition in a multi-memory device

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126186A1 (en) 2001-12-31 2003-07-03 Dion Rodgers Method and apparatus for suspending execution of a thread until a specified memory access occurs
US20050289377A1 (en) 2004-06-28 2005-12-29 Ati Technologies Inc. Apparatus and method for reducing power consumption in a graphics processing device
US20060200684A1 (en) 2005-03-01 2006-09-07 Vasudev Bibikar Power mode change voltage control in computerized system
US20060236136A1 (en) 2005-04-14 2006-10-19 Jones Darren M Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US20090172434A1 (en) 2007-12-31 2009-07-02 Kwa Seh W Latency based platform coordination
US20100131785A1 (en) 2008-11-24 2010-05-27 1E Limited Power management of computers
US20100332876A1 (en) 2009-06-26 2010-12-30 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6233690B1 (en) 1998-09-17 2001-05-15 Intel Corporation Mechanism for saving power on long latency stalls
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
GB0407384D0 (en) * 2004-03-31 2004-05-05 Ignios Ltd Resource management in a multicore processor
US8214662B2 (en) * 2007-04-09 2012-07-03 Panasonic Corporation Multiprocessor control unit, control method performed by the same, and integrated circuit
JP4858862B2 (ja) * 2009-06-24 2012-01-18 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
US9235251B2 (en) 2010-01-11 2016-01-12 Qualcomm Incorporated Dynamic low power mode implementation for computing devices
US8850236B2 (en) 2010-06-18 2014-09-30 Samsung Electronics Co., Ltd. Power gating of cores by an SoC
US8862917B2 (en) 2011-09-19 2014-10-14 Qualcomm Incorporated Dynamic sleep for multicore computing devices
US20130275791A1 (en) 2012-04-12 2013-10-17 Qualcomm Incorporated Method and System for Tracking and Selecting Optimal Power Conserving Modes of a PCD
US9015510B2 (en) 2012-06-29 2015-04-21 Intel Corporation Optimizing energy efficiency using device idle duration information and latency tolerance based on a pre-wake configuration of a platform associated to the device
US9003209B2 (en) * 2012-06-29 2015-04-07 Intel Corporation Efficient integrated switching voltage regulator comprising switches coupled to bridge drivers to provide regulated power supply to power domains

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126186A1 (en) 2001-12-31 2003-07-03 Dion Rodgers Method and apparatus for suspending execution of a thread until a specified memory access occurs
US20050289377A1 (en) 2004-06-28 2005-12-29 Ati Technologies Inc. Apparatus and method for reducing power consumption in a graphics processing device
US20060200684A1 (en) 2005-03-01 2006-09-07 Vasudev Bibikar Power mode change voltage control in computerized system
US20060236136A1 (en) 2005-04-14 2006-10-19 Jones Darren M Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US20090172434A1 (en) 2007-12-31 2009-07-02 Kwa Seh W Latency based platform coordination
US20100131785A1 (en) 2008-11-24 2010-05-27 1E Limited Power management of computers
US20100332876A1 (en) 2009-06-26 2010-12-30 Microsoft Corporation Reducing power consumption of computing devices by forecasting computing performance needs

Also Published As

Publication number Publication date
US20150301573A1 (en) 2015-10-22
WO2015164011A1 (en) 2015-10-29
CN106233225B (zh) 2017-10-10
JP2017519274A (ja) 2017-07-13
BR112016024712A2 (pt) 2017-08-15
JP6151465B1 (ja) 2017-06-21
CN106233225A (zh) 2016-12-14
EP3134805B1 (en) 2019-07-31
EP3134805A1 (en) 2017-03-01
KR20160145595A (ko) 2016-12-20
TW201544947A (zh) 2015-12-01
US9552033B2 (en) 2017-01-24
TWI595353B (zh) 2017-08-11

Similar Documents

Publication Publication Date Title
US10241797B2 (en) Replay reduction by wakeup suppression using early miss indication
KR101826088B1 (ko) 프로세서 코어들의 전력 모드들을 제어하기 위한 레이턴시-기반 전력 모드 유닛들, 및 관련 방법들 및 시스템들
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US7343502B2 (en) Method and apparatus for dynamic DLL powerdown and memory self-refresh
JP2013536532A (ja) 処理ノードの動的パフォーマンス制御
TWI570548B (zh) 包括執行指令集架構之不同部分之多個相異處理器核心之處理器
US20180067539A1 (en) Ultra-low-power design memory power reduction scheme
US9035956B1 (en) Graphics power control with efficient power usage during stop
TWI553549B (zh) 包括多個不同處理器核心之處理器
US9753531B2 (en) Method, apparatus, and system for energy efficiency and energy conservation including determining an optimal power state of the apparatus based on residency time of non-core domains in a power saving state
US20160019061A1 (en) MANAGING DATAFLOW EXECUTION OF LOOP INSTRUCTIONS BY OUT-OF-ORDER PROCESSORS (OOPs), AND RELATED CIRCUITS, METHODS, AND COMPUTER-READABLE MEDIA
WO2019204101A1 (en) Providing interrupt service routine (isr) prefetching in multicore processor-based systems
US9760145B2 (en) Saving the architectural state of a computing device using sectors
US20170090930A1 (en) Reconfiguring execution pipelines of out-of-order (ooo) computer processors based on phase training and prediction
EP3271815A1 (en) Reservation station circuit for execution of loop instructions by out-of-order processor, d related method, and computer-readable media
JP6535749B2 (ja) 入出力動作特性に基づくシステムオンチップアイドル電力状態制御のシステムと方法
US20160224053A1 (en) Timer-based processing unit operational scaling employing timer resetting on idle process scheduling
KR20180037980A (ko) Pat(punt avoidance table)를 사용하는 컴퓨터 프로세서에서 메모리 명령 펀트들의 예측
US11467621B2 (en) Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right