KR102536268B1 - 레이턴시 허용 오차 정보 없는 대기 전력 진입을 위한 시스템들, 방법들 및 디바이스들 - Google Patents
레이턴시 허용 오차 정보 없는 대기 전력 진입을 위한 시스템들, 방법들 및 디바이스들 Download PDFInfo
- Publication number
- KR102536268B1 KR102536268B1 KR1020187034076A KR20187034076A KR102536268B1 KR 102536268 B1 KR102536268 B1 KR 102536268B1 KR 1020187034076 A KR1020187034076 A KR 1020187034076A KR 20187034076 A KR20187034076 A KR 20187034076A KR 102536268 B1 KR102536268 B1 KR 102536268B1
- Authority
- KR
- South Korea
- Prior art keywords
- north
- power controller
- state
- power
- controller
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B15/00—Systems controlled by a computer
- G05B15/02—Systems controlled by a computer electric
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3228—Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3024—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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
- G06F11/3062—Monitoring 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 where the monitored property is the power consumption
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
- Power Engineering (AREA)
Abstract
대기 전력 진입이 레이턴시 허용 오차 정보 없이 수행될 수 있다. 본 명세서에 개시되는 실시예들은 플랫폼 전반적으로 임의의 레이턴시 허용 오차 정보를 무시하면서 컴퓨팅 시스템의 전력 전달 시스템이 요청되는 저 전력 상태에 진입하는 것을 가능하게 한다. 예를 들어, OS(operating system)는, 강제 C10 상태와 같은, 강제 Cx 상태(강제 C 상태라고 또한 알려짐)를 요청할 수 있어, 시스템이 플랫폼 전반적으로 임의의 레이턴시 허용 오차 정보를 무시하게 한다. 이러한 강제 Cx 상태는 문제가 있는 디바이스 또는 집적 회로가 저 전력 상태로의 진입을 차단하고 있는지를 결정하기 위한 테스트 메커니즘으로서 사용될 수 있다.
Description
본 개시 내용은 컴퓨팅 시스템들로의 전력 전달에 관한 것으로, 보다 구체적으로는 유휴 시스템들에서의 에너지 사용 효율에 관한 것이다.
도 1은 본 명세서에 개시되는 실시예들 중 적어도 하나와 일치하는 강제 Cx 상태를 구현하는 방법을 도시하는 흐름도이다.
도 2는 본 명세서에 개시되는 실시예들 중 적어도 하나와 일치하는 강제 Cx 상태를 구현하는 컴퓨팅 시스템의 시스템 도면이다.
도 3은 본 명세서에 개시되는 실시예들 중 적어도 하나와 일치하는 컴퓨팅 시스템에서 강제 Cx 저 전력 상태를 구현하는 방법을 도시한다.
도 4는 본 명세서에 개시되는 실시예들 중 적어도 하나와 함께 사용되는 멀티코어 프로세서를 도시한다.
도 5는 본 명세서에 개시되는 실시예들 중 적어도 하나와 함께 사용되는 컴퓨터 시스템을 도시한다.
도 6은 본 명세서에 개시되는 실시예들을 구현하는 설계의 시뮬레이션, 에뮬레이션, 및 제조를 위한 표현을 도시한다.
도 2는 본 명세서에 개시되는 실시예들 중 적어도 하나와 일치하는 강제 Cx 상태를 구현하는 컴퓨팅 시스템의 시스템 도면이다.
도 3은 본 명세서에 개시되는 실시예들 중 적어도 하나와 일치하는 컴퓨팅 시스템에서 강제 Cx 저 전력 상태를 구현하는 방법을 도시한다.
도 4는 본 명세서에 개시되는 실시예들 중 적어도 하나와 함께 사용되는 멀티코어 프로세서를 도시한다.
도 5는 본 명세서에 개시되는 실시예들 중 적어도 하나와 함께 사용되는 컴퓨터 시스템을 도시한다.
도 6은 본 명세서에 개시되는 실시예들을 구현하는 설계의 시뮬레이션, 에뮬레이션, 및 제조를 위한 표현을 도시한다.
본 개시 내용의 실시예들에 따른 시스템들 및 방법들에 대한 상세한 설명이 아래 제공된다. 몇몇 실시예들이 설명되지만, 본 개시 내용은 임의의 일 실시예에 제한되는 것이 아니라, 그 대신에 다수의 대안들, 수정들, 및 균등물들을 포함한다는 점이 이해되어야 한다. 또한, 다음의 설명에서는 본 명세서에서 개시되는 실시예들의 철저한 이해를 제공하기 위해 다수의 구체적인 상세 사항들이 설명되지만, 일부 실시예들은 이러한 상세 사항들의 일부 또는 전부 없이 실시될 수 있다. 더욱이, 명료성의 목적으로, 관련 분야에 공지된 특정 기술 자료는 본 개시 내용을 불필요하게 모호하게 하는 것을 회피하기 위하여 상세히 설명되지 않았다.
플랫폼 전반적으로 레이턴시 허용 오차 정보를 무시하면서 컴퓨팅 시스템의 전력 전달 시스템이 요청되는 저 전력 상태에 진입하는 것을 가능하게 하는 기술들, 장치들 및 방법들이 또한 개시된다. 예를 들어, OS(operating system)는, 강제 C10과 같은, 강제 Cx 상태(강제 C 상태라고 또한 알려짐)를 요청할 수 있어, 시스템이 플랫폼 전반적으로 레이턴시 허용 오차 정보를 무시하고 저 전력 상태에 진입하게 한다. 일부 실시예들에서, 강제 Cx 상태는 문제가 있는 디바이스 또는 집적 회로가 저 전력 상태로의 진입을 차단하고 있는지를 결정하기 위한 테스트 메커니즘으로서 사용된다.
2개의 타입들의 슬립핑 상태 모델들이 현대의 운영 체제들에서 지원된다. 제1 슬립핑 상태 모델은 Sx이다. Sx는 애플리케이션들 및 드라이버들에 통지하는 것, 및 다음으로 메모리를 셀프-리프레시로 남겨두고 대부분의 하드웨어를 파워 오프하는 것을 포함한다. 이것은 BIOS(basic input output system)가 OS로의 핸드오프를 위해 시스템을 준비하기 위해 사전-OS(operating system)를 수행하므로 (수 초 정도일 수 있는) 긴 레이턴시 전이들을 초래한다. 제2 슬립핑 상태 모델은 S0ix이다. S0ix에서, OS는 디바이스들을 더 낮은 전력 상태들(이는, 차례로, 시스템 BIOS 및 RTD3(runtime D3)으로 알려진 하드웨어를 파워 오프시킬 수 있음)에 동적으로 배치하고, 다음으로 스레드들/코어들을 저 전력 C 상태에 배치한다. 일부 실시예들에서, 이러한 저 전력 C 상태는 CC6(core C6) 저 전력 상태에 매핑된다. 플랫폼은 다음으로 PC10(platform C10) 상태에 진입할 수 있다(디바이스들이 비활성이고 이러한 상태를 허용한다고 가정함). 이러한 상태에서, SoC(system on a chip)는 저 전력 레벨들을 달성할 수 있고, 동시에, 시스템이 Sx 기반 접근법을 사용하는 것보다 훨씬 더 빠르게 깨어나게 한다(예를 들어, 300ms 미만 대 1초 초과).
일부 실시예들에서, 컴퓨팅 시스템은 SoC 및 접속된 디바이스들 전반적으로 직접 및 간접 레이턴시 허용 오차 지원을 제공하는 프레임워크를 가져서, SoC 내의 전력 관리 제어기들(예를 들어, 북쪽에 있는 PCU(power control unit)와 같은 북쪽 전력 제어기 및 남쪽에 있는 PMC(power management controller)와 같은 남쪽 전력 제어기)은 TNTE(time to the next timer event) 뿐만 아니라 최소 플랫폼 LTR(latency tolerance request)을 인식하고, 이러한 정보를 사용하여 플랫폼 상에서 저 전력 상태들에 안전하게 진입할 수 있다. 예를 들어, 일부 전력 플랫폼 시스템들은 깊은 저 전력 플랫폼 S0ix 상태들을 지원하고, 이는 운영 체제로부터의 어떠한 추가 지원도 없이 SoC 상에서 깊은 저 전력 패키지 C 상태들(예를 들어, platform C10)에 매핑된다. 그러나, 이러한 전력 플랫폼들은 디바이스들에 의존하여 프로시저들에 참여하고 따를 수 있고, 이는 발생하지 않을 수 있다. 전력 제어기들(즉, 전력 관리 제어기들)은 고정 하드웨어, 프로그램 가능 로직, 내장형 제어기들 등일 수 있다.
실시예에서, OS는 (현대의 대기 OS들을 사용하여 플랫폼들에 의해 사용되는 지원 모델들과 같은) S0ix를 준비하고 이에 진입하도록 시스템을 중단시키기 위한 지원을 제공한다. 일부 실시예들에서, 디바이스들은 그들의 링크들 상에서, 또는 플랫폼 내에 레이턴시 허용 오차를 주입하는 그들의 메커니즘(예를 들어, PCIe LTR 메시지)으로 정확한 더 낮은 전력 상태 전이들을 충분히 생성하지 않는다. 일부 디바이스들은, 파워 오프되지만, 오프 상태로 적절하게 시퀀스를 낮추지(sequencing down) 않음으로써 SoC가 저 전력 상태로 진입하는 것을 의도치 않게 잠재적으로 차단하도록, 현대의 대기 OS들에서 디바이스 저 전력-메시징의 일부로서 런 타임 콜드(예를 들어, RTD3) 상태들에 배치될 수 있다.
컴퓨팅 시스템들은 시스템이 S0에 있는 동안에 깊은 저 전력 C 상태들을 지원하기 위해 레이턴시 허용 시스템들을 이용하고, OS 기반 메시징은 OS 구동 S0ix에 진입하기 이전에 플랫폼 저 전력 상태들에 디바이스들을 안전하게 배치할 수 있다. 일부 실시예들에서, 시스템은, 시스템 전반적으로 레이턴시 허용 오차 정보를 무시하면서 요청되는 저 전력 상태, 때때로 (강제 C10과 같이) SoC에 의해 지원되는 가장 깊은 것에 진입하는 것에 의해, 본 명세서에서 강제 Cx라고 지칭되는, 메커니즘을 통해 S0ix에 진입할 수 있다. 일 실시예에서, 강제 Cx는 임의의 시스템 컴포넌트가 저 전력 상태로의 진입을 차단하고 있는지를 결정하기 위한 테스트 메커니즘으로서의 역할을 할 수 있고, OSV들 분석은 이것이 해결하는 문제들이 사실상 시스템적인지 및/또는 광범위한지를 테스트할 수 있다. 일부 실시예들에서, 강제 Cx는 플랫폼 내의 모든 디바이스에 대한 하드웨어, 드라이버 및/또는 BIOS 지원 모두 없이도 C10 기능성에 대해 CPU를 테스트하는 것을 허용할 수 있다.
본 개시 내용 전반적으로, 하이픈으로 연결되는 형태의 참조 번호는 엘리먼트의 구체적인 사례를 지칭하고, 하이픈으로 연결되지 않은 형태의 참조 번호는 일반적으로 또는 집합적으로 엘리먼트를 지칭한다. 따라서, 위젯(12-1)은, 위젯들(12)이라고 집합적으로 지칭될 수 있는, 위젯 클래스의 사례를 지칭하고, 이들 중 어느 하나는 일반적으로 위젯(12)이라고 지칭될 수 있다.
도 1은 강제 Cx 상태(강제 저 전력 C 상태라고 또한 알려짐)를 구현하는 방법을 도시하는 흐름도이다. 도시되는 실시예에서, OS(operating system)는 강제 Cx 상태 전이에 대한 요청과 함께 그래픽 시스템 및 SoC(system on a chip)의 CPU의 저 전력 상태들을 컴퓨팅 시스템의 SoC 북쪽(105)에 통신한다. SoC 북쪽(105)은 컴퓨팅 시스템의 SoC 남쪽(117)과 통신하여 운영 체제에 의해 요청되는 웨이크-업 시간 및 강제 Cx 상태 전이를 용이하게 한다. 강제 Cx 상태 요청에 기초하여, SoC 남쪽(117)은, 강제 Cx 상태 요청을 무효화하는 레거시 정책을 사용하도록 구성되지 않는 한, LTR(latency tolerance requests)에 응하지 않고 저 전력 상태로 전이한다.
SoC 북쪽(105) 및 SoC 남쪽(117)의 기능들은 프로세서들에 의해 수행될 수 있다. SoC 북쪽 프로세서는 PCU(power control unit)일 수 있다. SoC 남쪽 프로세서는 PCH(platform controller hub)의 PMC(power management controller)일 수 있다.
예를 들어, 플랫폼의 OS/드라이버 영역에서, 그래픽 시스템은 블록 102에서 RC6(runtime C6) 저 전력 상태에 진입하고, CPU(Intel® 아키텍처 또는 IA라고 또한 알려짐)는 블록 104에서 PC10(platform C10) 저 전력 상태에 도달하는 것을 타겟으로 하여 CC6(core C6) 저 전력 상태에 진입한다. OS는 저 전력 C 상태에 대한 요청을 SoC 북쪽(105) PCU(power control unit)에 전송한다. SoC 북쪽(105)이 블록 106에서 OS가 강제 Cx 상태를 요청하지 않았다고 결정하면, 시스템은 정상 PCx 흐름(107)을 따른다.
SoC 북쪽(105)이 블록 106에서 OS가 강제 Cx 상태를 요청하였다고 결정하면, SoC 북쪽(105)은 블록 108에서 북쪽에 대한 TNTE(time to next timer event) 및 강제 Cx 상태에 대한 PLTR(platform latency requirement) 플래그를 포함하는 PMReq(power management request)를 생성한다. SoC 북쪽(105)은 이러한 PMReq를 SoC 남쪽(PMC, PCH)(117)에 전송한다. SoC 남쪽(117)은 블록 118에서 남쪽에 대한 TNTE 및 강제 Cx 상태에 대한 PLTR 플래그를 포함하는 전력 관리 응답(PMRsp 또는 Rsp)을 발행하고 이러한 TNTE를 SoC 북쪽(105)에 리턴한다. SoC 북쪽(105)은 블록 110에서 시스템 TNTE를 NTNTE(north TNTE) 및 STNTE(south TNTE) 중 더 작은 것으로서 식별한다. SoC 북쪽(105)은 블록 112에서 시스템에 대한 TNTE를 요청되는 강제 Cx 상태에 비교한다. 블록 112에서 시스템에 대한 TNTE가 요청되는 강제 Cx 상태를 실행하기 위한 시간 이하이면, 시스템은 블록 116에서, 요청되는 강제 Cx 상태에 진입하고 남쪽으로부터의 브레이크(break) 시 또는 TNTE 미만(TNTE less) 웜업 시간인 간격에 따라 깨어난다. 그러나, 블록 112에서 요청되는 강제 Cx 상태를 실행하기 위한 시간보다 TNTE가 더 큰 것으로 SoC 북쪽(105)이 결정하면, SoC 북쪽(105)은 블록 114에서 강제 Cx 상태 요청을 강등시킨다.
SoC 남쪽(117)이 블록 118에서 PMRsp를 발행할 때, SoC 남쪽(117)은 블록 120에서 슬립 상태 정책(SLP_S0# 정책)을 평가한다. 블록 120에서 슬립 상태 정책이 테스트 모드이면, SoC 남쪽(117)은 블록 122에서 LTR 및 적어도 일부 SLP_S0# 진입 체크들을 무시하고, 다음으로 요청되는 강제 Cx 상태에 진입한다. 블록 120에서 슬립 상태 정책이 생산 모드이면, SoC 남쪽(117)은 블록 124에서 LTR을 무시하고 SLP_S0# 진입 체크들을 수행하고, 요청되는 강제 Cx 상태에 진입한다. 블록 120에서 슬립 상태 정책이 존재하지 않거나 또는 슬립 상태 정책이 선택되지 않으면, SoC 남쪽(117)은 블록 126에서 레거시 SLP_S0# 진입을 수행하고 다음으로 저 전력 C 상태에 진입한다.
도 2는 본 명세서에 개시되는 실시예들과 일치하는 강제 Cx 상태를 구현하는 컴퓨팅 시스템의 시스템 도면이다. 도시되는 실시예에서, OS(operating system) 및/또는 관련 하드웨어 드라이버(들)(202)는 그래픽 서브시스템(204) RC6(runtime C6) 저 전력 상태 및 SoC의 CPU(206)의 CC6(core C6) 저 전력 상태를 컴퓨팅 시스템의 PCU(208)에 통신한다. PCU(208)는 PMReq(power management request)를 통해 컴퓨팅 시스템의 플랫폼 제어기 허브(210) 상의 PMC(212)에 통신한다. PMC(212)는 전력 관리 응답(PMRsp)을 통해 PCU(208)에 통신하고, 존재한다면, 플랫폼의 슬립 상태 정책의 엔트리들에 따라 플랫폼 회로(214)에 통신한다. 다음으로 PMC(212)는 SLP_S0# 신호를 어써트하여 플랫폼 회로(214)로 하여금 저 전력 상태로 전이하게 할 수 있다.
강제 Cx는 전통적인 또는 정상 Cx와 비교되는 속성들을 포함할 수 있다. 정상 Cx는 최소 PLTR에 의해 예열 및 경계 레이턴시들로 TNTE에 응할 수 있다. 강제 Cx는 예열로 TNTE에 응하고 PLTR을 무시한다. 일 실시예에서는, 강제 Cx 필드가 CPUID MWAIT 리프 05h를 통해 열거될 수 있고, 플랫폼 표시자가 ACPI(advanced configuration and power interface)를 통해 또한 제공될 수 있다.
일부 실시예들에서, 메시징은 북쪽과 남쪽 사이의 OPIO(on package input/output) 또는 DMI(direct media interface)를 통해 PMReq, Rsp, Dmd 메시지들을 사용하여 관리된다. (PMC로부터 PCU로의) PMReq에서의 스누프 레이턴시 값(Snoop Latency Value)은 OS가 강제 Cx10을 요청했다는 것을 시그널링하기 위해 디스에이블(모두 0들임)되도록 설정될 수 있다.
일 실시예에서, PCH(platform controller hub)는 레이턴시 허용 오차가 충분히 높을 때 구체적인 액션들을 수행할 수 있다. SLP_S0#의 어써션을 통해 결정되는 저 전력 최적화 상태에 도달하기 위해 추가적인 PCH 특성화가 수행될 수 있다(예를 들어, 클로킹 및 PLL 상태에 의존함). 강제 Cx 상태의 실시예에서, PCH는 레이턴시 허용 오차를 무시하지만, SLP_S0#의 어써션과 이러한 상태에서 정확한 동작을 보장하기 위해 다른 체크들을 수행한다. 강제 Cx는 플랫폼 내의 디바이스들에 대한 하드웨어, 드라이버 및/또는 BIOS 지원의 구현 이전에 PCH 내의 SLP_S0# 로직의 검증을 용이하게 할 수 있다.
도 3은 컴퓨팅 시스템에서 강제 Cx 저 전력 상태를 구현하는 방법(300)을 도시한다. 본 방법(300)은, 전력 제어 유닛(424) 및 운영 체제 인터페이스(426)를 포함하는, 도 2 및 도 4 내지 도 6에 도시되는 시스템들을 포함하는 시스템들에 의해 달성될 수 있다. 블록 302에서, PCU는 시스템을 레이턴시 허용 오차 없이 저 전력 상태로 전이시키라는 요청을 수신한다. 블록 304에서, PCU는 PCU가 저 전력 상태를 벗어날 준비가 될 제1 시간, 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 PMC(power management controller)에 전송한다. 블록 306에서, PCU는 레이턴시 허용 오차 없이 동작하라는 요청, 및 PMC가 저 전력 상태를 벗어날 준비가 될 제2 시간을 확인 응답하는 전력 관리 메시지를 PMC로부터 수신한다. 블록 308에서, 시스템은 저 전력 상태로 전이한다. 블록 310에서, 시스템은 (블록 304로부터의) 제1 시간 또는 (블록 306으로부터의) 제2 시간 중 먼저인 것의 발생시 또는 그 이전에 활성 상태로 전이한다.
도 4는 적어도 하나의 실시예와 함께 사용되는 멀티코어 프로세서를 도시한다. 적어도 하나의 실시예에서, 프로세서(401)는 코어 영역(420) 및 언코어(422)를 포함한다. 일부 실시예들에서, 코어 영역(420)은 다수의 처리 코어들(402)을 포함하지만, 개시되는 기능성은 멀티-프로세서 시스템에서의 단일 코어 프로세서들에 적용 가능할 수 있다. 일부 실시예들에서, 프로세서(401)는 제n 처리 코어(402-n)까지 제1 처리 코어(402-1), 제2 처리 코어(402-2) 등을 포함한다.
일부 실시예들에서, 처리 코어들(402)은 전반적인 기능성의 상이한 양태들을 제공하는 서브-엘리먼트들 또는 클러스터들을 포함할 수 있다. 일부 실시예들에서, 처리 코어들(402)은 프론트 엔드(404), 실행 파이프라인(406), 및 코어 주변부(428)를 포함한다. 코어 주변부(428)는 L1(first level) 데이터 캐시(408), C6 스토리지(430) 및 APIC(advanced programmable interrupt controller)(432)를 포함할 수 있다. 적어도 하나의 실시예에서, 프론트 엔드(404)는 명령어 캐시(도시되지 않음)로부터 명령어들을 페치하도록 그리고 페치된 명령어들을 실행을 위해 스케줄링하도록 동작 가능하다. 일부 실시예들에서, 실행 파이프라인(406)은 레지스터 파일(도시되지 않음) 및 L1 데이터 캐시(408)와 함께 다양한 수학적, 논리적, 메모리 액세스 및 흐름 제어 명령어들을 디코딩하고 수행한다. 따라서, 일부 실시예들에서, 프론트 엔드(404)는 명령어들의 안정적인 스트림이 실행 파이프라인(406)으로 공급된다는 점을 보장하는 것을 담당할 수 있는 한편 실행 파이프라인(406)은 명령어들을 실행하고 결과들을 처리하는 것을 담당할 수 있다. 일부 실시예들에서, 실행 파이프라인(406)은 병렬로 2개 이상의 산술 파이프라인들을, 병렬로 2개 이상의 메모리 액세스 또는 로드/저장 파이프라인들을, 그리고 2개 이상의 흐름 제어 또는 분기 파이프라인들을 포함할 수 있다. 적어도 하나의 실시예에서, 실행 파이프라인(406)은 하나 이상의 부동 소수점 파이프라인을 추가로 포함할 수 있다. 일부 실시예들에서, 실행 파이프라인(406)은 비순차적으로 명령어들을 실행하거나, 추론적으로 명령어들을 실행하거나, 또는 양자 모두를 실행하기 위한 레지스터 및 논리 리소스들을 포함할 수 있다. 하이퍼스레드 코어는 병렬로 2개 이상의 명령어들의 실행이 가능한 코어이다. 코어의 각각의 실행 파이프라인(406)은 하이퍼스레드라고 불린다. 하이퍼스레드는 논리 코어로서 운영 체제에 노출될 수 있다.
코어 주변부(428)는, 스토리지 및 인터럽트들을 관리하는 것을 포함하여, 프론트 엔드(404) 및 실행 파이프라인(406)을 지원하는 로직을 포함할 수 있다. 코어 주변부(428)는 L1 데이터 캐시(408), C6 스토리지(430) 및 APIC(advanced programmable interrupt controller)(432)를 포함할 수 있다. C6 스토리지(430)는 처리 코어(402)가 (C6 상태와 같은) 저 전력 상태로 전이할 때 처리 코어(402)의 컨텍스트(또는 상태)를 저장할 수 있다. 주변 제어기(예를 들어, APIC(432)는, 연관된 처리 코어(402)에 어느 인터럽트들이 적용되는지를 식별하는 것 및 연관된 코어를 식별하는데 사용될 수 있는 APIC ID를 관리하는 것을 포함하여, 처리 코어(402)에 대한 인터럽트들을 관리할 수 있다.
적어도 하나의 실시예에서, 메모리 액세스 명령어들의 실행 동안, 실행 파이프라인(406)은 계층적 구성으로 배열되는 2개 이상의 캐시 메모리들을 포함할 수 있는 캐시 메모리 서브시스템의 최하위 레벨 캐시 메모리에 상주하는 적용 가능한 메모리 어드레스의 사본을 액세스하는 것에 의해 명령어들을 실행하려고 시도한다. 적어도 하나의 실시예에서, 캐시 메모리 서브시스템은 L1 데이터 캐시들(408) 및 언코어(422) 내의 LLC(last level cache)(418)를 포함한다. 적어도 하나의 실시예에서, 캐시 메모리 서브시스템의 다른 엘리먼트들은 프론트 엔드(404)와 함께 동작하는 코어 당(per-core) 명령어 캐시(도시되지 않음) 및 하나 이상의 코어 당 중간 캐시(도시되지 않음)를 포함할 수 있다. 적어도 하나의 실시예에서, 프로세서(401)에 대한 캐시 메모리 서브시스템은 코어 당 L1 데이터 및 명령어 캐시들, 명령어들 및 데이터 양자 모두를 포함하는 코어 당 중간 또는 L2 캐시 메모리, 명령어들 및 데이터를 포함하고 다수의 처리 코어들(402) 사이에서 공유되는 LLC(418)를 포함한다. 일부 실시예들에서, L1 데이터 캐시(408)에서 메모리 액세스 명령어가 누락되면, 적용 가능 메모리 어드레스의 사본이 발견될 때까지 캐시 메모리 서브시스템이 다양한 캐시 메모리들을 액세스하는 동안 적용 가능 프로그램 또는 스레드의 실행은 멈추거나 느려질 수 있다.
적어도 하나의 실시예에서, 프로세서(401), 제1 처리 코어(402-1), 제2 처리 코어(402-2) 및 처리 코어(402-n)는, 데이터 큐잉, 포인트-투-포인트 프로토콜들 및 멀티코어 인터페이싱을 지원할 수 있는, 크로스바(412)를 통해 통신한다. 프로세서(401)의 다른 실시예들은 공유 버스 인터커넥트 또는 직접 코어-투-코어 인터커넥션들 및 프로토콜들을 이용할 수 있다. 적어도 하나의 실시예에서, 크로스바(412)는 처리 코어들(402)을 LLC(418)와 인터커넥트하는 언코어 제어기로서 역할을 한다. 일부 실시예들에서, 언코어(422)는, 캐시 코히어런시 정책을 구현하고, 메모리 제어기(도시되지 않음)와 함께, 시스템 메모리(도시되지 않음)와 다양한 캐시 메모리들 사이의 코히어런시를 유지하는 캐시 제어기(417)를 포함할 수 있다.
적어도 하나의 실시예에서, PCU(power control unit)(424)는 배치 제어기(434)를 포함한다. 배치 제어기(434)는 처리 코어들(402)의 작업부하들을 모니터링하고, 효율을 증가시키기 위해 어느 작업이 상이한 코어로 이동될 수 있는지를 결정할 수 있다. 효율은 열 출력, 전력 사용 및/또는 달성된 작업에서 측정될 수 있다. 예를 들어, 효율은 다이 내 변동(더 낮은 열 출력, 감소된 전력 사용, 수명 사용 관리 또는 수행되는 더 많은 작업)으로 인해 상이해지는 코어들 사이의 스레드들을 이동시키는 것에 의해 증가될 수 있다. 효율은 임계값 위의 작업부하를 제공하지 않는 것(즉, 코어에 "스트레스를 주는 것(stressing)"이라고 또한 알려진, 코어가 임계값 위로 동작하는 것을 방지하기 위해 코어들 사이의 스레드들을 이동시키는 것)에 의해 코어의 저 전압 동작을 유지하는 것에 의해 증가될 수 있다. 효율은 단일 하이퍼스레딩 코어 상에 다수의 스레드들을 조합하는 것에 의해 증가될 수 있고, 이는 멀티-코어 오버헤드의 전력을 절약한다. 효율은 프로세서 다이 상의 열의 더 큰 분산을 가능하게 하기 위해 물리적으로 분리되는 코어들 상에 스레드들을 배치하는 것에 의해 증가될 수 있다. 효율은 프로세서 다이의 상이한 부분들을 가열하도록 물리적 프로세서로부터 물리적 프로세서로 순차적으로 스레드들을 이동시켜 열을 분산시키는 것에 의해 증가될 수 있다. 효율은 명령어들이 산술 유닛들을 사용하지 않을 때 실패한(failed) 산술 유닛들이 있는 코어들을 사용하지 않는 것, 및/또는 명령어들이 실패한 산술 유닛들을 사용할 때 코어들 사이의 스레드들을 이동시키는 것에 의해 증가될 수 있다. 효율은 수명 사용 관리 및/또는 열 관리를 위한 부하 균형화(load balancing)를 수행하는 것에 의해 증가될 수 있다.
일부 실시예들에서, 코어가 사용되고 그리고/또는 큰 작업부하를 수행하기 위해 사용됨에 따라, 코어의 효율은 감소한다. 효율 감소는 더 큰 동작 전압 및/또는 더 큰 열 출력에 기인할 수 있다. 일부 실시예들에서, 코어들의 수명 사용이 관리될 수 있고, 코어들의 수명 사용을 분산시키기 위해 작업부하들이 코어들 사이에 전이될 수 있다. 일 실시예에서, 프로세서는 프로세서 상에서 실제로 이용 가능한 것보다 더 낮은 코어 카운트를 보고할 수 있다. 작업부하는 여분의 보고되지 않은 코어들 없이 가능할 것을 넘어서 코어들의 전반적인 수명과 효율을 증가시키기 위해 코어들 사이에 분산될 수 있다. 일부 실시예들에서, 스레드들은 코어를 격리시키기 위해 코어에서 떨어져 전이될 수 있다. 격리된 코어는 테스트되고 그리고/또는 코어의 성능 특성들을 결정할 수 있다. 일 실시예에서, 코어 격리는 가상 머신 관리자 솔루션들과 함께 사용될 수 있다. 다른 실시예들에서, 격리된 코어는 다른 전용 목적, 숨겨진 실행 배열들을 지원하는데 사용될 수 있다.
일부 실시예들에서, 하드웨어 PCU(424)는 코어와 이용 가능한 하이퍼스레드 리소스들 사이의 스레드 배치를 결정할 수 있다. 논리 프로세서들이 OS에 열거될 수 있다. 그러나, 논리 프로세서들의 수는 프로세서에 존재하는 물리적 코어들 및/또는 하이퍼스레드들의 수보다 적을 수 있다(즉, OS에 열거되는 것보다 더 많은 프로세서 리소스들이 있을 수 있다). OS는 그것이 볼 수 있는 논리 프로세서들 상에 작업을 배치할 수 있고, 프로세서(예를 들어, PCU(424))는 나중에 스레드를 상이한 리소스로 이동시킬 수 있다. 예를 들어, PCU(424)는 코어의 컨텍스트를 저장하고, 컨텍스트를 상이한 코어에 재저장하고, 이전 코어의 로컬 APIC ID를 새로운 코어로 전용하는 시퀀스를 착수할 수 있다. 이러한 이동은 코어 또는 스레드 레벨에서 발생할 수 있다. 대안적으로, 하드웨어는 운영 체제 인터페이스(426)를 통해 OS에게 이동 힌트들을 제공할 수 있고, OS는 하나의 코어 또는 스레드로부터 다른 것으로 작업을 이동시킬 수 있다.
적어도 하나의 실시예에서, 코어 영역(420)은, 처리 코어들(402) 외에도, 각각의 코어 프로세서(402)에 대한 VRCG(voltage regulator/clock generator) 회로들(414)을 포함한다. 일부 실시예들에서, PCU(424)에 의해 생성되고 각각의 처리 코어(402)에 제공되는 코어 당 공급 전압 신호들 및 클록 주파수 신호들과 함께, VRCG 회로들(414)은 적용 가능 공급 전압 신호 및 클록 주파수 신호에 의해 표시되는 전력 상태를 적용 가능 처리 코어(402) 뿐만 아니라 언코어(422)에 적용하는 것에 의해 코어 당 전력 상태들을 지원한다.
일부 실시예들에서, 제2 처리 코어(402-2)의 성능 특성들이 제2 처리 코어(402-2)를 제1 처리 코어(402-1)보다 바람직한 효율 목표를 달성하기에 더 적합하게 만들 때, PCU(424)는 구체적인 스레드들의 실행을 위해 처리 코어들(402)을 선택하고 스레드와 그것의 대응하는 성능 목표 또는 컨텍스트 정보를 제1 코어(예를 들어, 제1 처리 코어(402-1))로부터 제2 코어(예를 들어, 제2 처리 코어(402-2))로 이동시키도록 추가로 동작 가능하다. 이동의 보다 상세한 설명에 대해서는 예를 들어 도 2 및 도 3을 참조한다.
일부 실시예들에서, 프로세서(401)는, 처리 코어들(402) 외에도, 그래픽 코어들 및 다른 타입들의 코어 로직을 포함하는 코어들의 하이브리드 모음(hybrid assortment of cores)를 포함할 수 있다. 이러한 하이브리드 코어 실시예들에서, PCU(424)는, 처리 코어들(402)에 대해서 뿐만 아니라, 코어 영역(420) 내의 이러한 다른 타입들의 코어 엘리먼트들에 대해서도, 최적의 또는 바람직한 전력 상태를 결정할 수 있다. 유사하게, 적어도 하나의 실시예에서, 프로세서(401)는 언코어(422)에 대한 전력 상태를 제공하는 VRCG 회로(414-u)를 포함하고, 이러한 실시예에서, PCU(424)는 언코어(422)에 대한 최적의 또는 바람직한 전력 상태들을 결정할 수 있다. 일부 실시예들에서, 프로세서(401)는 각각의 처리 코어(402), 코어 영역(420) 내의 임의의 다른 타입들의 코어들, 및 언코어(422)에 대한 개별화된 전력 상태들을 지원한다. 다른 실시예들은 전체 코어 영역(420)에 대한 하나의 전력 상태 및 언코어(422)에 대한 하나의 전력 상태를 지원할 수 있다.
PCU(424)는 운영 체제 인터페이스(426)를 또한 포함할 수 있다. 일부 실시예들에서, PCU(424)는 작업 배치 또는 이동에 대한 추천들을 운영 체제 인터페이스(426)를 통해 운영 체제에 제공할 수 있다. 다음으로 운영 체제는 코어들 사이의 스레드 이동을 수행할 수 있다. 예를 들어, 운영 체제는 2개의 논리 프로세서들이 하나의 하이퍼스레드 코어와 실제로 연관된다는 것을 인식하기에 충분한 정보를 가지고 있지 않을 수 있다. PCU(424)는 2개의 스레드들이 2개의 논리 프로세서들 상에 통합될 것을 운영 체제에 추천할 수 있고, 이는 멀티-코어 오버헤드를 제거할 수 있다.
많은 상이한 플랫폼들에서 실시예들이 구현될 수 있다. 도 5는 적어도 하나의 실시예와 함께 사용되는 컴퓨터 시스템(500)을 도시한다. 적어도 하나의 실시예에서, 프로세서 시스템의 프로세서, 메모리, 및 입력/출력 디바이스들은, 추가로 상세히 설명되는 바와 같이, 다수의 P-P(point-to-point) 인터페이스들에 의해 인터커넥트된다. 그러나, 다른 실시예들에서, 프로세서 시스템은, 프론트 사이드 버스, 멀티-드롭 버스, 및/또는 다른 구현과 같은, 상이한 버스 아키텍처들을 이용할 수 있다. 설명적 명확성을 위해 프로세서가 도 5에 도시되지만, 다양한 실시예들에서, 도시되는 아키텍처의 엘리먼트들을 사용하여 상이한 수의 프로세서들이 이용될 수 있다.
적어도 하나의 실시예에서, 시스템(500)은 포인트-투-포인트 인터커넥트 시스템이고 프로세서(501)를 포함한다. 일부 실시예들에서는 시스템(500)이 단일 프로세서만을 포함할 수 있지만, 다른 실시예들에서는, 시스템(500)이 다수의 프로세서들을 지원할 수 있다. 적어도 하나의 실시예에서, 프로세서(501)는 제1 처리 코어(502-1) 및 제2 처리 코어(502-2)를 포함하는 멀티코어 프로세서이다. 처리 코어들(502) 이외의 프로세서(501)의 다른 엘리먼트들은 언코어(522)라고 지칭될 수 있고, 한편 처리 코어들(502)은 코어 영역(520)이라고 또한 지칭될 수 있다는 점이 주목된다. 상이한 실시예들에서, 다양한 수의 코어들이 특정 프로세서에 존재할 수 있다. 적어도 하나의 실시예에서, 처리 코어들(502)은, 전반적인 기능성의 상이한 양태들을 제공하는, 클러스터들이라고 또한 지칭되는, 다수의 서브-엘리먼트들(도 5에 도시되지 않음)을 포함할 수 있다. 처리 코어들(502)은, 일부 실시예들에서, 하나 이상의 레벨들의 캐시 메모리를 포함할 수 있는 메모리 클러스터(도 5에 도시되지 않음)를 각각 포함할 수 있다. 일부 실시예들에서, 처리 코어들(502) 내의 다른 클러스터들(도 5에 도시되지 않음)은 프론트 엔드 클러스터 및 실행 파이프라인 클러스터를 포함할 수 있다. 적어도 하나의 실시예에서, 처리 코어들(502)은 L1 데이터 캐시를 포함할 수 있다. 일부 실시예들에서, 언코어(522)는 크로스바(512), LLC(518), MC(memory controller)(572), PCU(524) 및 P-P 인터페이스(576)를 포함할 수 있다. 일부 실시예들에서, PCU(524)는 다이 상의 각각의 코어의 개별 특성들 및 태스크의 제약들에 기초하여 구체적인 코어를 선택하는데 사용될 수 있다.
특정 실시예들에서, 프로세서(501) 내의 처리 코어들(502)은 서로 통신하는 직접 수단을 구비하지 않고, 오히려, 캐시 제어, 데이터 큐잉, P-P 프로토콜들, 및 멀티코어 인터페이싱과 같은 지능형 기능성을 포함할 수 있는, 크로스바(512)를 통해 통신한다. 일부 실시예들에서, 크로스바(512)는 따라서, 다른 엘리먼트들 중에서, 처리 코어들(502)을 MC(572), LLC(518), 및 P-P 인터페이스(576)와 인터커넥트하는 지능형 언코어 제어기를 나타낼 수 있다. 특히, 이러한 아키텍처에서의 성능을 향상시키기 위해, 크로스바(512) 내의 캐시 제어기 기능성은, 일부 실시예들에서, LLC(518) 및 처리 코어들(502)에 존재하는 하나 이상의 캐시들을 포함하는 캐시 계층 내의 데이터의 선택적 캐싱을 가능하게 한다. 적어도 하나의 실시예에서, 크로스바(512)는 글로벌 큐라고 지칭된다.
적어도 하나의 실시예에서, LLC(518)는 한 쌍의 처리 코어들(502)에, 각각, 연결될 수 있다. 일부 실시예들에서, LLC(518)는 제1 처리 코어(502-1) 및 제2 처리 코어(502-2)에 의해 공유될 수 있다. 일부 실시예들에서, LLC(518)는 처리 코어들(502) 중 어느 하나가 LLC(518)의 전체 스토리지 용량을 채울 수 있거나 액세스할 수 있도록 완전히 공유될 수 있다. 추가적으로, 일부 실시예들에서, MC(572)는 메모리 인터페이스(582)를 통해 프로세서(501)에 의한 메모리(532)로의 직접 액세스를 제공할 수 있다. 일부 실시예들에서, 메모리(532)는 DDR(double-data rate) 타입 DRAM(dynamic random-access memory)일 수 있고, 한편 메모리 인터페이스(582) 및 MC(572)는 DDR 인터페이스 사양에 따른다. 적어도 하나의 실시예에서, 메모리(532)는 원하는 DRAM 용량을 위한 대응하는 메모리 회로들로 채워질 수 있는 메모리 인터페이스들(또는 슬롯들)의 뱅크를 나타낼 수 있다.
일부 실시예들에서, 프로세서(501)는, 프로세서(501)를 지원하는 칩셋이라고 또한 집합적으로 지칭되는, 근거리 허브(590) 및 원거리 허브(519)와 같은, 시스템(500)의 다른 엘리먼트들과 또한 통신할 수 있다. 적어도 하나의 실시예에서, P-P 인터페이스(576)는 인터커넥트 링크(552)를 통해 근거리 허브(590)와 통신하기 위해 프로세서(501)에 의해 사용될 수 있다. 특정 실시예들에서, P-P 인터페이스들(576, 594) 및 인터커넥트 링크(552)는 Intel QuickPath Interconnect 아키텍처를 사용하여 구현된다. 적어도 하나의 실시예에서, 근거리 허브(590)는, 그래픽(538) 및/또는 다른 버스 디바이스들과 같은, 대응하는 버스 디바이스들이 있는 고성능 I/O를 지원할 수 있는, 제1 버스(516)와 근거리 허브(590)를 연결하기 위한 인터페이스(592)를 포함한다. 일부 실시예들에서, 그래픽(538)은 디스플레이 디바이스(도 5에 도시되지 않음)에 출력하는 고성능 그래픽 엔진을 나타낼 수 있다. 적어도 하나의 실시예에서, 제1 버스(516)는 PCie(PCI Express) 버스 및/또는 다른 컴퓨터 확장 버스와 같은, PCI(Peripheral Component Interconnect) 버스이다. 일부 실시예들에서, 근거리 허브(590) 또한 인터커넥트 링크(556)를 통해 인터페이스(596)에서 원거리 허브(519)에 연결될 수 있다. 특정 실시예들에서, 인터페이스(596)는 남쪽 브리지라고 지칭된다. 원거리 허브(519)는, 일부 실시예들에서, 다양한 컴퓨터 시스템 주변 디바이스들 및 인터페이스들에 대한 I/O 인터커넥션들을 제공할 수 있고, 레거시 컴퓨터 시스템 주변 디바이스들 및 인터페이스들과의 역방향 호환성을 제공할 수 있다. 따라서, 적어도 하나의 실시예에서, 원거리 허브(519)는, 추가로 상세히 설명되는 바와 같이, 네트워크 인터페이스(530) 및 오디오 I/O(534) 뿐만 아니라 제2 버스(560), 제3 버스(562), 및 제4 버스(521)로의 인터페이스들을 제공한다.
일부 실시예들에서, 제2 버스(560)는 I/O 디바이스들(566) 및 터치 스크린 제어기(514)로 확장되는 시스템(500)에 대한 기능성을 지원할 수 있고, PCI-타입 컴퓨터 버스일 수 있다. 적어도 하나의 실시예에서, 제3 버스(562)는, 다양한 타입들의 키보드, 컴퓨터 마우스들, 통신 디바이스들, 데이터 스토리지 디바이스들, 버스 확장 디바이스들 등을 포함할 수 있는, 데스크톱 디바이스(564) 및 통신 디바이스(526)에 의해 표현되는, 최종 사용자 소비자 디바이스들에 대한 주변 버스일 수 있다. 특정 실시예들에서, 제3 버스(562)는 USB(Universal Serial Bus) 또는 유사한 주변 인터커넥트 버스를 나타낸다. 일부 실시예들에서, 제4 버스(521)는, 프로세서(501)에 의해 실행 가능할 수 있는 영구 스토리지(528)에 의해 일반적으로 표현되는, 하드 디스크 드라이브들, 광학 드라이브들, 및 디스크 어레이들과 같은, 대용량 스토리지 디바이스들을 접속하기 위한 컴퓨터 인터페이스 버스를 나타낼 수 있다.
적어도 하나의 실시예에서, 시스템(500)은 핸드헬드 또는 태블릿 타입의 동작을 용이하게 하는 다양한 특징들 및 랩톱 또는 데스크톱 동작을 용이하게 하는 다른 특징들을 포함한다. 또한, 일부 실시예들에서, 시스템(500)은 전통적인 전력 보존 성능 목적들과 연관된 레이턴시를 동시에 감소시키면서 공격적으로 전력을 보존하는데 협력하는 특징들을 포함한다.
적어도 하나의 실시예에서, 시스템(500)은 영구 스토리지(528)에 전체적으로 또는 부분적으로 저장될 수 있는 운영 체제(540)를 포함한다. 일부 실시예들에서, 운영 체제(540)는 시스템(500)의 다양한 하드웨어 및 소프트웨어 특징들을 다양한 정도로 노출시키는 다양한 모듈들, 애플리케이션 프로그래밍 인터페이스들 등을 포함할 수 있다. 적어도 하나의 실시예에서, 시스템(500)은 센서 API(application programming interface)(542), 재개 모듈(544), 접속 모듈(546), 및 터치 스크린 사용자 인터페이스(548)를 포함한다. 일부 실시예들에서, 시스템(500)은 용량성 또는 저항성 터치스크린 제어기(514) 및 SSD(solid state drive)(550)와 같은 영구 스토리지의 제2 소스를 포함하는 다양한 하드웨어/펌웨어 특징들을 추가로 포함할 수 있다.
일부 실시예들에서, 센서 API(542)는 시스템(500)에 포함될 수 있는 하나 이상의 센서(도시되지 않음)에 애플리케이션 프로그램 액세스를 제공한다. 시스템(500)이 일부 실시예들에서 가속도계, GPS(global positioning system) 디바이스, 자이로미터, 경사계, 및 광 센서를 가질 수 있다. 재개 모듈(544)은, 일부 실시예들에서, 실행될 때, 시스템(500)을 전력 보존 성능 목적으로부터 동작 성능 목적으로 전이시킬 때 레이턴시를 감소시키기 위한 동작들을 수행하는 소프트웨어로서 구현될 수 있다. 적어도 하나의 실시예에서, 재개 모듈(544)은 시스템(500)이 전력 보존 모드에 진입할 때 사용되는 SSD 스토리지의 양을 감소시키기 위해 SSD(550)와 함께 작동할 수 있다. 재개 모듈(544)은 일부 실시예들에서 슬립 모드로 전이하기 이전에 대기 및 임시 메모리 페이지들을 플러시할 수 있다. 일부 실시예들에서, 시스템(500)이 저 전력 상태에 진입하는 것을 보존하기 위해 사용하는 시스템 메모리 공간의 양을 감소시키는 것에 의해, 재개 모듈(544)은 저 전력 상태로부터 동작 성능 목적으로의 전이를 수행하는데 사용되는 시간의 양을 유익하게 감소시킨다. 적어도 하나의 실시예에서, 접속 모듈(546)은, 실행될 때, 전통적인 "웨이크-업(wake-up)" 시퀀스들과 연관된 레이턴시 또는 지연의 양을 감소시키면서 전력을 보존하기 위한 상보적 기능들을 수행하는 소프트웨어 명령어들을 포함할 수 있다. 접속 모듈(546)은, 일부 실시예들에서, 이메일 및 소셜 네트워크 애플리케이션들을 포함하는 특정 "동적(dynamic)" 애플리케이션들을 주기적으로 업데이트할 수 있어서, 시스템(500)이 저 전력 모드로부터 깨어날 때, 종종 리프레시할 가능성이 가장 큰 애플리케이션들이 최신일 수 있다. 적어도 하나의 실시예에서, 터치 스크린 사용자 인터페이스(548)는 핸드헬드 애플리케이션들을 위해 전통적으로 보유되는 터치스크린들을 통해 사용자 입력을 가능하게 하는 터치스크린 제어기(514)를 지원한다. 일부 실시예들에서, 통신 디바이스들(526)에 대한 지원과 함께 터치 스크린 지원의 포함은 전용 태블릿 디바이스들에서 전통적으로 발견되는 특징들 뿐만 아니라 전용 랩톱 및 데스크톱 시스템들에서 발견되는 특징들을 시스템(500)이 제공할 수 있게 한다.
도 6은 개시되는 기술들을 구현하는 설계의 시뮬레이션, 에뮬레이션, 및 제조를 위한 표현을 도시한다. 설계를 표현하는 데이터는 다수의 방식들로 설계를 표현할 수 있다. 먼저, 시뮬레이션들에서 유용한 바와 같이, 하드웨어는 하드웨어 설명 언어 또는 설계되는 하드웨어가 수행할 것으로 예상되는 방법의 컴퓨터화된 모델을 기본적으로 제공하는 다른 기능적 설명 언어를 사용하여 표현될 수 있다. 적어도 하나의 실시예에서, 하드웨어 모델(614)은 컴퓨터 메모리와 같은 스토리지 매체(610)에 저장될 수 있어서, 하드웨어 모델(614)에 특정 테스트 슈트를 적용하는 시뮬레이션 소프트웨어(612)를 사용하여 하드웨어 모델(614)이 시뮬레이션될 수 있어 이것이 의도된 바와 같이 실제로 기능하는지를 결정할 수 있다. 일부 실시예들에서, 시뮬레이션 소프트웨어(612)는 스토리지 매체(610)에 기록되거나, 캡처되거나, 포함되지 않는다.
추가적으로, 로직 및/또는 트랜지스터 게이트들이 있는 회로 레벨 모델이 설계 프로세스의 일부 단계들에서 생산될 수 있다. 이러한 모델은, 때때로 프로그램 가능 로직을 사용하여 모델을 형성하는 전용 하드웨어 시뮬레이터들에 의해, 유사하게 시뮬레이션될 수 있다. 이러한 타입의 시뮬레이션은, 추가로 정도를 취하여, 에뮬레이션 기술일 수 있다. 어느 경우에서든, 재구성 가능 하드웨어는 개시되는 기술들을 이용하는 모델을 저장하는 유형의(tangible) 머신 판독 가능 매체를 포함할 수 있는 다른 실시예이다.
더욱이, 대부분의 설계들은, 일부 단계에서, 하드웨어 모델에서의 다양한 디바이스들의 물리적 배치를 표현하는 데이터의 레벨에 도달한다. 종래의 반도체 제조 기술들이 사용되는 경우에, 하드웨어 모델을 나타내는 데이터는 집적 회로를 생산하는데 사용되는 마스크들에 대한 상이한 마스크 층들 상의 다양한 특징들의 존재 또는 부재를 명시하는 데이터일 수 있다. 다시, 집적 회로를 나타내는 이러한 데이터는 데이터 내의 회로 또는 로직이 이들 기술들을 수행하도록 시뮬레이트 또는 제조될 수 있다는 점에서 개시되는 기술들을 구현한다.
이러한 설계의 임의의 표현에 있어서, 데이터는 임의의 형태의 머신 판독 가능 매체에 저장될 수 있다. 일부 실시예들에서는, 메모리(630), 또는 디스크와 같은 자기 또는 광학 스토리지(620)가 유형의 머신 판독 가능 매체일 수 있다. 이러한 매체들 중 임의의 것이 설계 정보를 "운반(carry)" 할 수 있다. 따라서, "운반(carry)"이라는 용어(예를 들어, 유형의 머신 판독 가능 매체 운반 정보)는 스토리지 디바이스 상에 저장되는 정보를 커버한다. 설계 또는 설계의 특정 부분을 설명하는 비트들의 세트는 (캐리어 또는 스토리지 매체와 같은 머신 판독 가능 매체 내에 구현될 때) 그 자체로 판매되거나 또는 추가의 설계 또는 제조를 위해 다른 것들에 의해 사용될 수 있는 물품이다.
예들
다음의 예들은 추가의 실시예들에 관련된다.
예 1은 저 전력 상태로 전이하기 위한 북쪽 전력 제어기이다. 북쪽 전력 제어기는 프로세서를 포함한다. 프로세서는 컴퓨팅 시스템을 레이턴시 허용 오차 없이 저 전력 상태로 전이시키라는 요청을 수신하도록 설계된다. 프로세서는 북쪽 전력 제어기가 저 전력 상태를 벗어날 준비가 될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하도록 또한 설계된다. 프로세서는 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태를 벗어날 준비가 될 때까지의 제2 시간을 확인하는 응답을 남쪽 전력 제어기로부터 수신하도록 추가로 설계된다. 프로세서는 저 전력 상태로 전이하도록 그리고 제1 시간 및 제2 시간 중 먼저인 것의 발생시 또는 그 이전에 활성 상태로 전이하도록 또한 설계된다.
예 2는 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 북쪽 전력 제어기는 PCU(power control unit)이고 남쪽 전력 제어기는 PMC(power management controller)이다.
예 3은 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 북쪽 전력 제어기는 고정 하드웨어, 프로그램 가능 로직, 또는 내장형 제어기이다.
예 4는 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 남쪽 전력 제어기는 고정 하드웨어, 프로그램 가능 로직, 또는 내장형 제어기이다.
예 5에서, 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제는 전력 상태 정보를 북쪽 전력 제어기에 제공하도록 설계되는 그래픽 인터페이스 및 CPU(central processing unit) 인터페이스, 또는 양자 모두의 인터페이스들을 추가로 포함할 수 있다.
예 6에서, 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제는 북쪽 전력 제어기에 전력 상태 정보를 제공하도록 설계되는 운영 체제 인터페이스를 추가로 포함할 수 있다.
예 7은 예 1, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 북쪽 전력 제어기는 북쪽 브리지의 일부이고 남쪽 전력 제어기는 남쪽 브리지의 일부이다.
예 8은 예 1 내지 예 7 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 요청은 운영 체제로부터의 것이다.
예 9는 예 1 내지 예 7 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 저 전력 상태는 C10 상태이다.
예 10은 예 1 내지 예 7 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 레이턴시 허용 오차는 PLTR(platform latency tolerance request)이다.
예 11은 예 1 내지 예 7 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 저 전력 상태는 플랫폼 S0ix 상태를 포함한다.
예 12는 예 1 내지 예 7 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 저 전력 상태는 패키지 C10 상태를 포함한다.
예 13은 남쪽 전력 제어기의 장치이다. 이러한 장치는 프로세서를 포함한다. 프로세서는 북쪽 전력 제어기가 저 전력 상태를 벗어날 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 북쪽 전력 제어기로부터 수신하도록 설계된다. 프로세서는 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태를 벗어날 제2 시간을 확인하는 북쪽 전력 제어기에 대한 응답을 생성하도록, SLP_S0# 신호를 어써트하도록, 그리고 저 전력 상태로 전이하도록 또한 설계된다.
예 14는 예 13, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 제1 시간은 TNTE(time to next timer event)이다.
예 15는 예 13, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 전력 관리 메시지는 PMReq(power management request) 메시지, Rsp 메시지, OPIO(on package I/O) 상의 Dmd 메시지, 또는 DMI(direct media interface) 메시지이다.
예 16은 예 13, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 레이턴시 허용 오차 없이 동작하라는 표시는 디스에이블됨을 나타내는 값으로 설정되는 PMReq(power management request) 메시지 내의 스누프 레이턴시 값을 추가로 포함한다.
예 17은 예 13, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 것은 프로세서 패키지의 SLP_S0# 핀의 전압이 설정되게 하는 것을 추가로 포함한다.
예 18은 예 13, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 북쪽 전력 제어기는 북쪽 브리지의 일부이고 남쪽 전력 제어기는 남쪽 브리지의 일부이다.
예 19는 예 13 내지 예 18 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 것은 테스트 SLP_S0# 정책이 선택될 때 테스트 모드 강제 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함한다.
예 20은 예 13 내지 예 18 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 것은 생산 SLP_S0# 정책이 선택될 때 레이턴시 허용 오차 요청들을 무시하면서 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함한다.
예 21은 예 13 내지 예 18 중 임의의 것, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 것은 SLP_S0# 정책이 선택되지 않을 때 레거시 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함한다.
예 22는 컴퓨터 프로그램 제품이다. 이러한 컴퓨터 프로그램 제품은 컴퓨터 판독 가능 스토리지 매체를 포함한다. 컴퓨터 판독 가능 스토리지 매체는 SoC(system on a chip)의 전력 관리 동작들을 수행하기 위해 프로세서에 의한 실행을 위한 명령어들을 저장한다. 프로세서에 의해 실행될 때, 이러한 동작들은 방법을 수행한다. 이러한 방법은 레이턴시 허용 오차를 무시하라는 표시자와 함께 SoC를 저 전력 상태로 전이시키라는 요청을 수신하는 단계, 및 북쪽 전력 제어기가 저 전력 상태에 대해 준비될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하는 단계를 포함한다. 이러한 방법은 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 응답을 남쪽 전력 제어기로부터 수신하는 단계, 및 제1 및 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하는 단계를 추가로 포함한다.
예 23은 예 22, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 이러한 방법은 북쪽 전력 제어기가 저 전력 상태에 대해 준비될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 북쪽 전력 제어기로부터 수신하는 단계를 추가로 포함한다. 이러한 방법은 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 북쪽 전력 제어기에 대한 응답을 생성하는 단계; SLP_S0# 신호를 어써트하는 단계 및 제1 및 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하는 단계를 추가로 포함한다.
예 24는 예 23, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 북쪽 전력 제어기는 북쪽 브리지의 일부이고 남쪽 전력 제어기는 남쪽 브리지의 일부이다.
예 25는 예 23, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 방법은 그래픽 인터페이스 및 CPU(central processing unit) 인터페이스로부터 저 전력 상태의 표시를 수신하는 단계를 추가로 포함한다.
예 26은 예 22, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 운영 체제 인터페이스로부터 전력 상태 정보의 표시를 수신하는 방법을 추가로 포함할 수 있고, 운영 체제 인터페이스는 전력 상태 정보를 북쪽 전력 제어기에 제공하도록 설계된다.
예 27은 저 전력 상태로 전이하기 위한 장치이다. 이러한 장치는, 컴퓨팅 시스템을 레이턴시 허용 오차 없이 저 전력 상태로 전이시키라는 요청을 수신하기 위한 프로시저, 및 북쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하기 위한 프로시저를 포함한다. 이러한 장치는 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 응답을 남쪽 전력 제어기로부터 수신하기 위한 프로시저, 및 제1 및 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하기 위한 프로시저를 추가로 포함한다.
예 28은 예 27, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, 운영 체제 인터페이스로부터 전력 상태 정보의 표시를 수신하기 위한 프로시저를 추가로 포함할 수 있고, 운영 체제 인터페이스는 전력 상태 정보를 북쪽 전력 제어기에 제공하도록 설계된다.
예 29는 저 전력 상태로 전이하는 방법이다. 이러한 방법은, 컴퓨팅 시스템을 레이턴시 허용 오차 없이 저 전력 상태로 전이시키라는 요청을 수신하는 단계, 및 PCU(power control unit)가 저 전력 상태에 대해 준비될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하는 단계를 포함한다. 이러한 방법은 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 응답을 남쪽 전력 제어기로부터 수신하는 단계, 및 제1 및 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하는 단계를 추가로 포함한다.
예 30은 저 전력 상태로 전이하기 위한 방법이다. 이러한 방법은 북쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 북쪽 전력 제어기로부터 수신하는 단계를 포함한다. 이러한 방법은, 레이턴시 허용 오차 없이 동작하라는 요청 및 남쪽 전력 제어기가 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 북쪽 전력 제어기에 대한 응답을 생성하는 단계, 및 SLP_S0# 신호를 어써트하는 단계 및 제1 및 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하는 단계를 추가로 포함한다.
예 31은 예 30, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 단계는 테스트 SLP_S0# 정책이 선택될 때 테스트 모드 강제 SLP_S0# 진입 체크들을 사용하는 단계를 추가로 포함한다.
예 32는 예 30, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 단계는 생산 SLP_S0# 정책이 선택될 때 레이턴시 허용 오차 요청들을 무시하면서 SLP_S0# 진입 체크들을 사용하는 단계를 추가로 포함한다.
예 33은 예 30, 또는 본 명세서에 설명되는 예들 중 임의의 것의 주제이고, SLP_S0# 신호를 어써트하는 단계는 SLP_S0# 정책이 선택되지 않을 때 레거시 SLP_S0# 진입 체크들을 사용하는 단계를 추가로 포함한다.
예 34는 예 29 내지 예 33 중 임의의 것에서 식별되는 방법을 수행하기 위한 프로시저를 포함하는 장치이다.
예 35는, 실행될 때, 예 29 내지 예 33 중 임의의 것에서 식별되는 방법을 또는 장치를 실현하는 머신 판독 가능 명령어들을 포함하는 머신 판독 가능 스토리지이다.
예 36은, 실행될 때, 머신으로 하여금 예 29 내지 예 33 중 임의의 것의 방법을 수행하게 하는 코드를 포함하는 머신 판독 가능 매체이다.
본 명세서에 설명되는 시스템들 및 방법들의 실시예들 및 구현들은 다양한 동작들을 포함할 수 있고, 이들은 컴퓨터 시스템에 의해 실행되는 머신 실행 가능 명령어들로 구체화될 수 있다. 컴퓨터 시스템은 하나 이상의 범용 또는 특수 목적 컴퓨터들(또는 다른 전자 디바이스들)을 포함할 수 있다. 컴퓨터 시스템은 동작들을 수행하는 구체적인 로직을 포함하는 하드웨어 컴포넌트들을 포함할 수 있거나 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합을 포함할 수 있다.
컴퓨터 시스템들 및 컴퓨터 시스템 내의 컴퓨터들은 네트워크를 통해 접속될 수 있다. 본 명세서에 설명되는 바와 같이 구성 및/또는 사용을 위해 적합한 네트워크들은, World Wide Web, 개인 인터넷, 보안 인터넷, 부가 가치 네트워크, 가상 개인 네트워크, 엑스트라넷, 인트라넷, 또는 매체의 물리 전송에 의해 다른 머신들과 통신하는 동등한 독립형 머신들과 같은, 하나 이상의 로컬 영역 네트워크, 광역 네트워크, 도시권 네트워크, 및/또는 인터넷 또는 IP 네트워크들을 포함한다. 특히, 적합한 네트워크는 이종 하드웨어 및 네트워크 통신 기술들을 사용하는 네트워크들을 포함하는 2개 이상의 다른 네트워크들의 일부들 또는 전부들로 형성될 수 있다.
하나의 적합한 네트워크는 서버 및 하나 이상의 클라이언트를 포함하고; 다른 적합한 네트워크들은 서버들, 클라이언트들, 및/또는 피어-투-피어 노드들의 다른 조합들을 포함할 수 있고, 주어진 컴퓨터 시스템은 클라이언트로서 그리고 서버로서 기능할 수 있다. 각각의 네트워크는, 서버 및/또는 클라이언트들과 같은, 적어도 2개의 컴퓨터들 또는 컴퓨터 시스템들을 포함한다. 컴퓨터 시스템은 워크스테이션, 랩톱 컴퓨터, 접속 해제 가능 모바일 컴퓨터, 서버, 메인프레임, 클러스터, 소위 "네트워크 컴퓨터(network computer)" 또는 "씬 클라이언트(thin client)", 태블릿, 스마트 폰, 개인 휴대 단말기 또는 다른 핸드헬드 컴퓨팅 디바이스, "스마트(smart)" 소비자 전자 디바이스 또는 기기, 의료 디바이스, 또는 이들의 조합을 포함할 수 있다.
적합한 네트워크들은 통신들 또는, Novell®, Microsoft®, 및 다른 벤더들로부터 입수가능한 소프트웨어와 같은, 네트워킹 소프트웨어를 포함할 수 있고, 해당 분야에서의 기술자들에게 공지된 트위스트 페어, 동축, 광섬유 케이블들, 전화 라인들, 무선파들, 위성들, 마이크로파 릴레이들, 변조된 AC 전력 라인들, 물리 매체 트랜스퍼, 및/또는 다른 데이터 송신 "와이어들(wires)"을 통해 TCP/IP, SPX, IPX, 및 다른 프로토콜들을 사용하여 동작할 수 있다. 네트워크는 더 작은 네트워크들을 포함하고/하거나 게이트웨이 또는 유사한 메커니즘을 통해 다른 네트워크들에 접속 가능할 수 있다.
다양한 기술들, 또는 그 특정한 양태들 또는 그 일부들은, 플로피 디스켓들, CD-ROM들, 하드 드라이브들, 자기 또는 광학 카드들, 고체-상태 메모리 디바이스들, 비일시적 컴퓨터 판독 가능 스토리지 매체, 또는 임의의 다른 머신 판독 가능 스토리지 매체와 같은, 유형의 매체에 구현되는 프로그램 코드(즉, 명령어들)의 형태를 취할 수 있고, 프로그램 코드가, 컴퓨터와 같은ㅡ 머신에 로딩되고 그에 의해 실행될 때, 머신은 다양한 기술들을 실시하기 위한 장치가 된다. 프로그램 가능 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨팅 디바이스는 프로세서, 프로세서에 의해 판독 가능한 스토리지 매체(휘발성 및 비-휘발성 메모리 및/또는 스토리지 엘리먼트들을 포함함), 적어도 하나의 입력 디바이스, 및 적어도 하나의 출력 디바이스를 포함할 수 있다. 휘발성 및 비-휘발성 메모리 및/또는 스토리지 엘리먼트들은 전자 데이터를 저장하기 위한 RAM, EPROM, 플래시 드라이브, 광학 드라이브, 자기 하드 드라이브, 또는 다른 매체일 수 있다. 본 명세서에서 설명되는 다양한 기술들을 구현하거나 또는 활용할 수 있는 하나 이상의 프로그램들은 API(application programming interface), 재사용 가능 제어들 등을 사용할 수 있다. 이러한 프로그램들은 컴퓨터 시스템과 통신하기 위해 하이 레벨 프로시저 또는 객체 지향 프로그래밍 언어로 구현될 수 있다. 그러나, 프로그램(들)은, 원한다면, 어셈블리 또는 기계 언어로 구현될 수 있다. 어느 경우에서든, 언어는 컴파일된 또는 해석된 언어일 수 있으며, 하드웨어 구현들과 조합될 수 있다.
각각의 컴퓨터 시스템은 하나 이상의 프로세서 및/또는 메모리를 포함하고; 컴퓨터 시스템들은 다양한 입력 디바이스들 및/또는 출력 디바이스들을 또한 포함할 수 있다. 프로세서는, Intel®, AMD®, 또는 다른 "오프-더-셸프(off-the-shelf)" 마이크로프로세서와 같은, 범용 디바이스를 포함할 수 있다. 프로세서는, ASIC, SoC, SiP, FPGA, PAL, PLA, FPLA, PLD, 또는 다른 맞춤형 또는 프로그램 가능 디바이스와 같은, 특수 목적 처리 디바이스를 포함할 수 있다. 메모리는 정적 RAM, 동적 RAM, 플래시 메모리, 하나 이상의 플립 플롭들, ROM, CD-ROM, DVD, 디스크, 테이프, 또는 자기, 광학, 또는 다른 컴퓨터 스토리지 매체를 포함할 수 있다. 입력 디바이스(들)는 키보드, 마우스, 터치 스크린, 라이트 펜, 태블릿, 마이크로폰, 센서, 또는 부가(accompanying) 펌웨어 및/또는 소프트웨어가 있는 다른 하드웨어를 포함할 수 있다. 출력 디바이스(들)는 모니터 또는 다른 디스플레이, 프린터, 스피치 또는 텍스트 합성기, 스위치, 신호 라인, 또는 부가 펌웨어 및/또는 소프트웨어가 있는 다른 하드웨어를 포함할 수 있다.
본 명세서에서 설명되는 많은 기능 유닛들은, 그들의 구현 독립성을 특히 강조하기 위하여 이용되는 용어인 하나 이상의 컴포넌트로서 구현될 수 있다는 점이 이해되어야 한다. 예를 들어, 컴포넌트는 로직 칩, 트랜지스터, 또는 다른 개별 컴포넌트들과 같은 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 오프-더-셸프 반도체들을 포함하는 하드웨어 회로로서 구현될 수 있다. 컴포넌트는 필드 프로그램 가능 게이트 어레이들, 프로그램 가능 어레이 로직, 프로그램 가능 로직 디바이스들 등과 같은 프로그램 가능 하드웨어 디바이스들로 또한 구현될 수 있다.
컴포넌트들은 다양한 타입들의 프로세서들에 의해 실행되는 소프트웨어로 또한 구현될 수 있다. 실행 가능 코드의 식별된 컴포넌트는, 예를 들어, 객체, 절차, 또는 함수로서 구성될 수 있는 컴퓨터 명령들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 컴포넌트의 실행파일들(executables)은 물리적으로 함께 위치할 필요는 없지만, 논리적으로 함께 결합될 때, 컴포넌트를 포함하며 이 컴포넌트의 기술되는 목적을 달성하는 상이한 위치들에 저장되는 이질적인 명령들을 포함할 수 있다.
실제로, 실행 가능 코드의 컴포넌트는 단일의 명령 또는 다수의 명령일 수 있으며, 심지어 수 개의 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 및 수 개의 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 연산 데이터가 본 명세서에서 컴포넌트들 내에서 식별되고 예시될 수 있으며, 임의의 적합한 형태로 구체화되고 임의의 적합한 타입의 데이터 구조 내에 구성될 수 있다. 연산 데이터는 단일 데이터 세트로 수집될 수 있거나, 상이한 스토리지 디바이스들을 포함하는 상이한 위치들에 걸쳐 분산될 수 있고, 시스템 또는 네트워크 상에서 전자 신호들로서만 적어도 부분적으로 존재할 수 있다. 컴포넌트들은 원하는 기능들을 수행하도록 동작 가능한 에이전트들을 포함하는, 수동 또는 능동일 수 있다.
설명되는 실시예들의 몇몇 양태들은 소프트웨어 모듈들 또는 컴포넌트들로 예시될 것이다. 본 명세서에 사용되는 바와 같이, 소프트웨어 모듈 또는 컴포넌트는 메모리 디바이스 내에 위치되는 임의의 타입의 컴퓨터 명령어 또는 컴퓨터 실행 가능 코드를 포함할 수 있다. 소프트웨어 모듈은 예를 들어 컴퓨터 명령어들의 하나 이상의 물리 또는 논리 블록들을 포함할 수 있으며, 블록들은 하나 이상의 작업들을 수행하거나 특정 데이터 타입들을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등으로 조직될 수 있다. 소프트웨어 모듈은 소프트웨어 대신에 또는 소프트웨어 외에도 하드웨어 및/또는 펌웨어로 구현될 수 있다는 점이 이해된다. 본 명세서에 설명되는 기능 모듈들 중 하나 이상은 서브모듈들로 분리되고/되거나 단일 또는 더 작은 수의 모듈들로 조합될 수 있다.
특정 실시예들에서, 특정 소프트웨어 모듈은 메모리 디바이스, 상이한 메모리 디바이스들, 또는 상이한 컴퓨터들의 상이한 위치들에 저장되는 다른 명령어들을 포함할 수 있으며, 다른 명령어들은 모듈의 설명되는 기능성을 함께 구현한다. 실제로, 모듈은 단일 명령어 또는 많은 명령어들을 포함할 수 있고, 몇몇 상이한 코드 세그먼트들 위에, 상이한 프로그램들 중에, 및 몇몇 메모리 디바이스들에 걸쳐 분산될 수 있다. 일부 실시예들은 태스크들이 통신 네트워크를 통해 링크된 원격 처리 디바이스에 의해 수행되는 분산형 컴퓨팅 환경에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 소프트웨어 모듈들은 국지적 및/또는 원격 메모리 스토리지 디바이스에 위치할 수 있다. 또한, 데이터베이스 기록에 함께 결속되거나 렌더링된 데이터는 동일한 메모리 디바이스에, 또는 수 개의 메모리 디바이스들에 걸쳐 상주할 수 있고, 네트워크를 통해 데이터베이스 내의 기록의 필드들에서 함께 링크될 수 있다.
본 명세서 전반적으로 "예(an example)"에 대한 지칭은 그 예와 관련하여 설명되는 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반적으로 다양한 곳들에서의 "예에서(in an example)"라는 문구는 모두 동일한 실시예를 반드시 지칭하는 것이 아니다.
본 명세서에서 사용되는 바와 같이, 복수의 항목들, 구조적 엘리먼트들, 구성적 엘리먼트들 및/또는 재료들은 편의를 위해 공통 목록으로 제시될 수 있다. 그러나, 이러한 리스트들은 마치 그 리스트의 각각의 멤버가 분리되고 고유한 멤버로서 개별적으로 식별되는 것처럼 해석되어야 한다. 따라서, 이러한 목록의 어떤 개개의 멤버도, 반대되는 표시들이 없다면 이들이 공통 그룹에 제시되었다는 것에만 기초하여, 동일한 목록의 임의의 다른 멤버와 사실상 등가물인 것으로 해석해서는 안 된다. 또한, 다양한 실시예들 및 본 실시예들의 예들이 본 명세서에서 다양한 컴포넌트들에 대한 대안들과 함께 본 명세서에서 지칭될 수 있다. 이러한 실시예들, 예들, 및 대안들은 서로의 실질적인 등가물들로서 고려되어서는 안 되고, 별개의 자주적인 표현들로서 고려되어야 한다는 점이 이해된다.
더욱이, 설명되는 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 조합될 수 있다. 다음의 설명에서는, 본 발명의 실시예들의 철저한 이해를 제공하기 위해, 재료들, 주파수들, 크기들, 길이들, 폭들, 형상들 등과 같은, 다수의 구체적인 상세 사항들이 제공된다. 그러나, 관련 분야에서의 기술자라면, 본 발명은 이러한 구체적인 상세 항들 중 하나 이상 없이, 또는 다른 방법들, 컴포넌트들, 재료들 등을 사용하여 실시될 수 있다고 인식할 것이다. 다른 경우들에서, 잘 알려진 구조들, 재료들, 또는 동작들은 양태들을 모호하게 하는 것을 회피하기 위해 상세하게 도시되거나 설명되지 않는다.
본 명세서에 설명되는 시스템들은 구체적인 실시예들의 설명들을 포함한다는 점이 인식되어야 한다. 이러한 실시예들은 단일 시스템들로 조합되거나, 다른 시스템들로 부분적으로 조합되거나, 다수의 시스템들로 분할되거나 또는 다른 방식들로 분할 또는 조합될 수 있다. 또한, 일 실시예의 파라미터들/속성들/양태들/등이 다른 실시예에서 사용될 수 있다고 고려된다. 이러한 파라미터들/속성들/양태들/등은 명료성을 위해 하나 이상의 실시예에서 설명될 뿐이고, 이러한 파라미터들/속성들/양태들/등이 본 명세서에서 구체적으로 부인되지 않는 한 다른 실시예의 파라미터들/속성들/등과 조합되거나 대체될 수 있다는 점이 인식된다.
전술한 것은 명료성을 위해 다소 상세히 설명되었지만, 그 원리들로부터 벗어나지 않고 특정한 변경들 및 수정들이 이루어질 수 있다는 것은 명백할 것이다. 본 명세서에서 설명되는 프로세스들 및 장치들 모두를 구현하는 많은 대안적인 방법이 있다는 점이 주목되어야 한다. 이에 따라, 본 실시예들은 한정적이 아니라 예시적인 것으로 간주되어야 하며, 본 실시예들은 본 명세서에서 주어진 상세 사항들로 한정되는 것이 아니라, 첨부된 청구항들의 범위 및 균등물들 내에서 수정될 수 있다.
본 분야에서의 기술자들은 기본 원리들로부터 벗어나지 않고 위에 설명되는 실시예들의 상세 사항들에 대해 많은 변경들이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 명세서의 범위는 다음의 청구항들에 의해 결정되어야 한다.
Claims (25)
- 저 전력 상태로 전이하기 위한 북쪽 전력 제어기로서,
프로세서를 포함하고, 상기 프로세서는,
컴퓨팅 시스템을 레이턴시 허용 오차 없이 상기 저 전력 상태로 전이시키라는 요청을 수신하도록;
상기 북쪽 전력 제어기가 상기 저 전력 상태를 벗어날 준비가 될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하도록;
레이턴시 허용 오차 없이 동작하라는 요청 및 상기 남쪽 전력 제어기가 상기 저 전력 상태를 벗어날 준비가 될 때까지의 제2 시간을 확인하는 응답을 상기 남쪽 전력 제어기로부터 수신하도록;
상기 저 전력 상태로 전이하도록; 그리고
상기 제1 시간 및 상기 제2 시간 중 먼저인 것의 발생시 또는 그 이전에 활성 상태로 전이하도록 구성되는 북쪽 전력 제어기. - 제1항에 있어서,
상기 북쪽 전력 제어기는 PCU(power control unit)이고 상기 남쪽 전력 제어기는 PMC(power management controller)인 북쪽 전력 제어기. - 제1항에 있어서,
상기 북쪽 전력 제어기는 고정 하드웨어, 프로그램 가능 로직 또는 내장형 제어기인 북쪽 전력 제어기. - 제1항에 있어서,
상기 남쪽 전력 제어기는 고정 하드웨어, 프로그램 가능 로직 또는 내장형 제어기인 북쪽 전력 제어기. - 제1항에 있어서,
그래픽 인터페이스 및 CPU(central processing unit) 인터페이스- 상기 인터페이스들 양자 모두는 상기 북쪽 전력 제어기에 전력 상태 정보를 제공하도록 구성됨 -를 추가로 포함하는 북쪽 전력 제어기. - 제1항에 있어서,
운영 체제 인터페이스- 상기 운영 체제 인터페이스는 상기 북쪽 전력 제어기에 전력 상태 정보를 제공하도록 구성됨 -를 추가로 포함하는 북쪽 전력 제어기. - 제1항에 있어서,
상기 북쪽 전력 제어기는 북쪽 브리지의 일부이고 상기 남쪽 전력 제어기는 남쪽 브리지의 일부인 북쪽 전력 제어기. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 요청은 운영 체제로부터의 것인 북쪽 전력 제어기. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 저 전력 상태는 C10 상태인 북쪽 전력 제어기. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 레이턴시 허용 오차는 PLTR(platform latency tolerance request)인 북쪽 전력 제어기. - 제1항 내지 제7항 중 어느 한 항에 있어서,
상기 저 전력 상태는 플랫폼 S0ix 상태를 포함하는 북쪽 전력 제어기. - 남쪽 전력 제어기의 장치로서,
프로세서를 포함하고, 상기 프로세서는,
북쪽 전력 제어기가 저 전력 상태를 벗어날 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 북쪽 전력 제어기로부터 수신하도록;
레이턴시 허용 오차 없이 동작하라는 요청 및 상기 남쪽 전력 제어기가 상기 저 전력 상태를 벗어날 제2 시간을 확인하는 상기 북쪽 전력 제어기에 대한 응답을 생성하도록;
SLP_S0# 신호를 어써트하도록; 그리고
상기 저 전력 상태로 전이하도록 구성되는 장치. - 제12항에 있어서,
상기 제1 시간은 TNTE(time to next timer event)인 장치. - 제12항에 있어서,
SLP_S0# 신호를 어써트하는 것은 프로세서 패키지의 SLP_S0# 핀의 전압이 설정되게 하는 것을 추가로 포함하는 장치. - 제12항에 있어서,
상기 북쪽 전력 제어기는 북쪽 브리지의 일부이고 상기 남쪽 전력 제어기는 남쪽 브리지의 일부인 장치. - 제12항 내지 제15항 중 어느 한 항에 있어서,
SLP_S0# 신호를 어써트하는 것은 테스트 SLP_S0# 정책이 선택될 때 테스트 모드 강제 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함하는 장치. - 제12항 내지 제15항 중 어느 한 항에 있어서,
SLP_S0# 신호를 어써트하는 것은 생산 SLP_S0# 정책이 선택될 때 레이턴시 허용 오차 요청들을 무시하면서 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함하는 장치. - 제12항 내지 제15항 중 어느 한 항에 있어서,
SLP_S0# 신호를 어써트하는 것은 SLP_S0# 정책이 선택되지 않을 때 레거시 SLP_S0# 진입 체크들을 사용하는 것을 추가로 포함하는 장치. - 북쪽 전력 제어기에 의하여 수행되는, 저 전력 상태로 전이하기 위한 방법으로서,
레이턴시 허용 오차를 무시하라는 표시자와 함께 SoC를 저 전력 상태로 전이시키라는 요청을 수신하는 단계;
북쪽 전력 제어기가 상기 저 전력 상태에 대해 준비될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 남쪽 전력 제어기에 전송하는 단계;
레이턴시 허용 오차 없이 동작하라는 요청 및 상기 남쪽 전력 제어기가 상기 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 응답을 상기 남쪽 전력 제어기로부터 수신하는 단계; 및
상기 제1 및 상기 제2 시간 중 나중인 것의 발생시 또는 그 이후에 저 전력 상태로 전이하는 단계를 포함하는 방법. - 남쪽 전력 제어기에 의하여 수행되는 방법으로서,
북쪽 전력 제어기가 저 전력 상태에 대해 준비될 제1 시간 및 레이턴시 허용 오차 없이 동작하라는 표시를 표시하는 전력 관리 메시지를 상기 북쪽 전력 제어기로부터 수신하는 단계;
레이턴시 허용 오차 없이 동작하라는 요청 및 상기 남쪽 전력 제어기가 상기 저 전력 상태에 대해 준비가 될 때까지의 제2 시간을 확인하는 상기 북쪽 전력 제어기에 대한 응답을 생성하는 단계; 및
상기 제1 및 상기 제2 시간 중 나중인 것의 발생시 또는 그 이후에,
SLP_S0# 신호를 어써트하는 단계; 및
상기 저 전력 상태로 전이하는 단계를 포함하는 방법. - 제19항 또는 제20항에 있어서,
상기 북쪽 전력 제어기는 북쪽 브리지의 일부이고 상기 남쪽 전력 제어기는 남쪽 브리지의 일부인 방법. - 제19항에 있어서,
그래픽 인터페이스 및 CPU(central processing unit) 인터페이스로부터 저 전력 상태의 표시를 수신하는 단계를 추가로 포함하는 방법. - 제19항에 있어서,
운영 체제 인터페이스로부터 전력 상태 정보의 표시를 수신하는 단계- 상기 운영 체제 인터페이스는 전력 상태 정보를 상기 북쪽 전력 제어기에 제공하도록 구성됨 -를 추가로 포함하는 방법. - 장치로서,
제19항, 제20항, 제22항 및 제23항 중 어느 한 항에서 청구되는 방법을 수행하는 수단을 포함하는 장치. - 비일시적 머신 판독 가능 기록 매체로서,
실행될 때, 머신으로 하여금 제19항, 제20항, 제22항 및 제23항 중 어느 한 항의 방법을 수행하게 하는 코드를 포함하는 비일시적 머신 판독 가능 기록 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/191,123 US10678199B2 (en) | 2016-06-23 | 2016-06-23 | Systems, methods and devices for standby power entry without latency tolerance information |
US15/191,123 | 2016-06-23 | ||
PCT/US2017/034200 WO2017222731A1 (en) | 2016-06-23 | 2017-05-24 | Systems, methods and devices for standby power entry without latency tolerance information |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190011242A KR20190011242A (ko) | 2019-02-01 |
KR102536268B1 true KR102536268B1 (ko) | 2023-05-25 |
Family
ID=60677452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020187034076A KR102536268B1 (ko) | 2016-06-23 | 2017-05-24 | 레이턴시 허용 오차 정보 없는 대기 전력 진입을 위한 시스템들, 방법들 및 디바이스들 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10678199B2 (ko) |
EP (1) | EP3475783B1 (ko) |
KR (1) | KR102536268B1 (ko) |
WO (1) | WO2017222731A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10739843B2 (en) * | 2018-02-21 | 2020-08-11 | Dell Products L.P. | System and method of monitoring device states |
EP3796128B1 (en) | 2019-09-23 | 2023-08-30 | NXP USA, Inc. | Power mode transition management for power supply |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100487543B1 (ko) | 2000-09-01 | 2005-05-03 | 엘지전자 주식회사 | 시피유 스케쥴링 방법 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8255713B2 (en) * | 2008-06-26 | 2012-08-28 | Intel Corporation | Management of link states using plateform and device latencies |
EP2180587B1 (en) * | 2008-10-01 | 2020-05-06 | Rockwell Automation Limited | Method and Apparatus for Power Supply |
US8566628B2 (en) | 2009-05-06 | 2013-10-22 | Advanced Micro Devices, Inc. | North-bridge to south-bridge protocol for placing processor in low power state |
US8966305B2 (en) | 2011-06-30 | 2015-02-24 | Advanced Micro Devices, Inc. | Managing processor-state transitions |
US9015396B2 (en) * | 2012-09-18 | 2015-04-21 | Apple Inc. | Reducing latency in a peripheral component interconnect express link |
US9195292B2 (en) | 2013-06-26 | 2015-11-24 | Intel Corporation | Controlling reduced power states using platform latency tolerance |
US10025370B2 (en) | 2013-08-13 | 2018-07-17 | Apple Inc. | Overriding latency tolerance reporting values in components of computer systems |
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 |
-
2016
- 2016-06-23 US US15/191,123 patent/US10678199B2/en active Active
-
2017
- 2017-05-24 WO PCT/US2017/034200 patent/WO2017222731A1/en unknown
- 2017-05-24 KR KR1020187034076A patent/KR102536268B1/ko active IP Right Grant
- 2017-05-24 EP EP17815894.5A patent/EP3475783B1/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100487543B1 (ko) | 2000-09-01 | 2005-05-03 | 엘지전자 주식회사 | 시피유 스케쥴링 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP3475783A1 (en) | 2019-05-01 |
EP3475783B1 (en) | 2022-10-26 |
WO2017222731A1 (en) | 2017-12-28 |
EP3475783A4 (en) | 2020-02-19 |
KR20190011242A (ko) | 2019-02-01 |
US10678199B2 (en) | 2020-06-09 |
US20170371402A1 (en) | 2017-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10503542B2 (en) | Systems, methods and devices for work placement on processor cores | |
EP3210093B1 (en) | Configurable volatile memory data save triggers | |
US9690353B2 (en) | 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 | |
JP6197196B2 (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
CN108780342B (zh) | 用于使用处理器中的核的热裕量的系统、方法和设备 | |
US9442559B2 (en) | Exploiting process variation in a multicore processor | |
US9552308B2 (en) | Early wake-warn for clock gating control | |
US11853787B2 (en) | Dynamic platform feature tuning based on virtual machine runtime requirements | |
JP2017520850A (ja) | 高速再開を伴うシステム待機状態のエミュレーション | |
KR102536268B1 (ko) | 레이턴시 허용 오차 정보 없는 대기 전력 진입을 위한 시스템들, 방법들 및 디바이스들 | |
US11243800B2 (en) | Efficient virtual machine memory monitoring with hyper-threading | |
US11645115B2 (en) | Systems, methods and devices for standby power savings | |
JP2017021811A (ja) | 電力効率の優れたプロセッサアーキテクチャ | |
JP2016201139A (ja) | 電力効率の優れたプロセッサアーキテクチャ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |