SlideShare a Scribd company logo
1 of 23
Download to read offline
1
Idle Power States
Nomenclature
charles.garcia-tobin@arm.com
2
ARM Systems
 SoC vendors differentiate on power
 Power modes supported will differ from one device to another, in number
and type
 However there are a lots of commonalities
 Some states retain context and others require context saving
 Large proportion of the context is given by the ARM architecture and its
implementation
 Some states require cache management
 Can require wake up after a period of time
 States require communication with an external power controller
A15
L2
CCI-400 Cache Coherent Interconnect
Auxiliary
Interfaces
A15
A15
A15
L2
A7A7
A7A7
GIC-400 Interrupt control ARM systems are increasingly complex and
hierarchical
 Low power states can require cooperation
between affected cores
 Introduction of clusters gives rise to new
levels of hierarchy in power states
3
What do you need to do to enter a state?
Choose state
Latencies
Available?
Save arch contextBSP hooks
Clean cache(s)
Will CPU be
Shutdown?
Use BSP timer
program Arch Timer
Can Arch Timer
be used?
Cache in Shutdown?
Need to
place cache in
Memory ret?
Enter state
Place cache in
Memory ret.
Last man?
Generic
Arch Impl
BSP
Yes
No
Yes
No
No
Yes
Yes
No
Do I need to a
Timed wakeup?
No
Yes
4
ACPI – For better or for worse
 Linux world on ARM has adopted ACPI as its nomenclature
for describing idle states
 This nomenclature makes sense in the Intel world
 C-states have tight definitions
 There is broad equivalence between cores
 In ARM however different platforms have different amount of
states and different meanings for states
 There is no equivalence
 Different vendors expose different number and types of states
 Numerically states are not equivalent eg C2 for one device is different
to C2 in another
5
ACPI – For better or for worse
 The only hard rule is that larger numbers mean deeper states
 Eg C2 saves more power than C1
 However there is no particular structure for state naming
Cx???
Who is going down? It it a CPU is it a cluster? Is it all the on-line cores?
Is a cache is affected? Which one?
How is the cache affected?
Do I need to save state?
6
Idle nomenclature aims and motivations
 Give common definitions that can be used across systems
from different providers. Allowing comparisons to take place
 Aims to provide enough flexibility to allow differentiation
 Aim to drive further code abstraction in OS, or CPU
architectural layers of OSs
 Encapsulating common OS operations
 Which CPUs in system will be switched off -> a single core, a cluster,
all cores?
 Which caches are affected
 When is state going to be lost? What state will be lost?
 CPU state
 Cache state
 do caches need cleaning, invalidating, do they retain content
 GIC
7
Proposal - Hierarchy Levels
 A hierarchy level is bounded by a either:
 A cache or a coherent interconnect
 Proposal is to talk about power states affecting different hierarchy
levels
 With topology knowledge this combines affinity and cache level
System C
System A
A9
L2
DDR
L1
System B
A9
SCU
DDR
L1
A9
L1
A15 cluster
A15
SCU/L2
L1
A15
L1
A7 cluster
A7
SCU/L2
L1
A7
L1
Cache Coherent Interconnect
DDR
H0
H1
H2
H3
8
States of Execution - Running
 For a CPU (H0)
 The CPU is executing code, higher hierarchy levels (eg caches and
interconnects requires to support this CPU) are also running
 For a cache or interconnect (Hx>0)
 The cache or interconnect at the hierarchy level is fully operational
9
States of Execution - Waiting
 For a CPU (H0)
 The CPU not executing code (STANDBYWFI). All hierarchy levels > 0
are running or waiting
 There is no loss of state from OS point of view. OS does not have to
save context
 CPU resumes execution at the instruction after the WFI.
 Can include clock gating and retention techniques
 For bigger (Hx>0) hierarchies bounded by a cache
 Caches can be entered into low power states that retain memory
content
 As cache content is coherent the cache must be snoopable
 A cache in a low power state must automatically wakeup to
service snoops, transparently to the CPU
 There could be an increase in snoop latency associated with this
state
10
States of Execution - Shutdown
 For a CPU (H0)
 Core is power gated
 All CPU state is lost. OS has to save context
 GP registers, VFP/NEON, CP15, debug state (core domain debug
registers and PMUs), CPU timers
 Resumption of execution takes place at the reset vector
 For deeper hierarchies (Hx>0)
 The caches or interconnects contained in the hierarchy will be power
gated. Any data contained will be lost
 Caches need to be cleaned when entering the state, and invalidated
when returning to a Running state
11
Some examples
State Type CPU state L1 L2 State Lost
WH0 WFI Live Live None
SH1 Off Off Live CPU state
L1
WH2 Shutdown Shutdown Available CPU state
and L1 state
SH2 Off Cleaned and
Off
Cleaned
and Off
CPU state L1
and L2
12
Some examples
State Type State of
CPUs
L1 State Lost
CPU affinity
level 0
WH0 WFI Live None
SH1 Off Cleaned and
Off
CPU state
L1 state
System
affinity level 1
SH2 Off Cleaned and
Off
CPU state
L1
13
Some examples
State
Type
CPU or
cluster
state
L1 L2 State Lost
CPU
affinity
level 0
WH0 WFI Live Live None
SH1 Off Off Live All CPU state
and L1 state
Cluster
affinity
level 1
WH2 Shutdown Shutdown Available CPU state
L1 state
SH2 Off Cleaned
and Off
Cleaned and
Off
CPU state
L1 and L2 state
System
Affinity
level 2
SH3 Off Off Off CPU state
L1 and L2 state
14
Some examples
A15 cluster SH2
A7 CPU0L1 in SH1
A7 CPU1L1 in RH1
WH0
WH2
Shutdown
Running
Waiting
15
State ID
 Different HW platforms may support several states of each
type
 It is proposed that states can have individual IDs appended to
the name of the state eg:
[R/W/S][Hierarchy level]_[StateID]
16
Additional properties
 An architected framework for idle power management needs
to track a number of additional properties per state
 GIC state
 Latencies
 Wake up timer
 Availability
 Other
17
Additional properties - GIC
 In some shutdown states at higher levels, it is possible to
loose GIC state
 Needs to be saved
 A flag needs to be associated with the appropriate system
shutdown states
A15
L2
CCI-400 Cache Coherent Interconnect
Auxiliary
Interfaces
A15
A15
A15
L2
A7A7
A7A7
GIC-400 Interrupt control
18
Additional properties - Latencies
 Entry/Exit: OSPM needs to know the aggregate time to:
 Enter the state
 Move the hierarchy level back into execution
 Memory Latencies:
 When a cache is in waiting, there will be a snoop latency
associated with that state:
 The OSPM should not use a cache waiting state if:
 there are other bus masters which are active that can
snoop into the cache AND their memory quality of service
requirements cannot be satisfied due to the snoop latency
19
Additional properties – Wakeup Timer
 ARMv7 provides architectural timers, generic timer, that can
be used to wake up cores from waiting states
 Generic Timer cannot be used in all Shutdown states
 Software standardisation could work round this problem
 Per state we need to represent a flag to indicate if external
timer wake up is required
 If not the OSPM programs the architectural timer
 Otherwise it calls out to the BSP to program a timer
20
Additional properties - Availability
 Availability of a power state is not just determined by latency
 Current mode of other components in the system can
determine availability of states:
 E.g. GPU is running, or use of some clocks
 Device power management within the OS can be used to gate states
 big.LITTLE Migration models also introduce the concept of
per CPU idle states
21
Additional properties – Other
 Last Man
 In some systems (mainly owing to affinitised trustedOS) only one
specific CPU can take the cluster/system down
 Target residency
 Power consumed by state
22
Putting it all together
Choose state
Latencies
Available?
Save arch contextBSP hooks
Clean cache(s)
Will CPU be
Shutdown?
Use BSP timer
program Arch Timer
Can Arch Timer
be used?
Cache in Shutdown?
Need to
place cache in
Memory ret?
Enter state
Place cache in
Memory ret.
Last man?
OS Generic
Arch Impl
BSP
Yes
No
Yes
No
No
Yes
Yes
No
Do I need to a
Timed wakeup?
No
Yes
23
Questions?

More Related Content

What's hot

LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLinaro
 
Hardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsHardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsThe Linux Foundation
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS devicescooby_doo
 
Cis81 ccna1v5-2-configuring networkoperatingsystem
Cis81 ccna1v5-2-configuring networkoperatingsystemCis81 ccna1v5-2-configuring networkoperatingsystem
Cis81 ccna1v5-2-configuring networkoperatingsystemBetselove
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMLinaro
 
SFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationSFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationLinaro
 
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118Wei Fu
 
Project ACRN GPIO mediator introduction
Project ACRN GPIO mediator introductionProject ACRN GPIO mediator introduction
Project ACRN GPIO mediator introductionProject ACRN
 
BKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformBKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformLinaro
 
AAME ARM Techcon2013 004v02 Debug and Optimization
AAME ARM Techcon2013 004v02 Debug and OptimizationAAME ARM Techcon2013 004v02 Debug and Optimization
AAME ARM Techcon2013 004v02 Debug and OptimizationAnh Dung NGUYEN
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?Linaro
 
ARM AAE - Memory Systems
ARM AAE - Memory SystemsARM AAE - Memory Systems
ARM AAE - Memory SystemsAnh Dung NGUYEN
 
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driverSFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driverLinaro
 
Important cisco-chow-commands
Important cisco-chow-commandsImportant cisco-chow-commands
Important cisco-chow-commandsssusere31b5c
 
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, Intel
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, IntelXPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, Intel
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, IntelThe Linux Foundation
 

What's hot (20)

LCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platformLCU14 302- How to port OP-TEE to another platform
LCU14 302- How to port OP-TEE to another platform
 
Hardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ ProcessorsHardware accelerated Virtualization in the ARM Cortex™ Processors
Hardware accelerated Virtualization in the ARM Cortex™ Processors
 
operating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS deviceoperating and configuring cisco a cisco IOS device
operating and configuring cisco a cisco IOS device
 
Cis81 ccna1v5-2-configuring networkoperatingsystem
Cis81 ccna1v5-2-configuring networkoperatingsystemCis81 ccna1v5-2-configuring networkoperatingsystem
Cis81 ccna1v5-2-configuring networkoperatingsystem
 
HKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARMHKG15-400: Next steps in KVM enablement on ARM
HKG15-400: Next steps in KVM enablement on ARM
 
SFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM VirtualizationSFO15-407: Performance Overhead of ARM Virtualization
SFO15-407: Performance Overhead of ARM Virtualization
 
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
Reliability, Availability, and Serviceability (RAS) on ARM64 status - SAN19-118
 
Project ACRN GPIO mediator introduction
Project ACRN GPIO mediator introductionProject ACRN GPIO mediator introduction
Project ACRN GPIO mediator introduction
 
ARM AAE - System Issues
ARM AAE - System IssuesARM AAE - System Issues
ARM AAE - System Issues
 
BKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV PlatformBKK16-303 96Boards - TV Platform
BKK16-303 96Boards - TV Platform
 
CCNA CHAPTER 4 BY jetarvind kumar madhukar
CCNA CHAPTER 4 BY jetarvind kumar madhukarCCNA CHAPTER 4 BY jetarvind kumar madhukar
CCNA CHAPTER 4 BY jetarvind kumar madhukar
 
AAME ARM Techcon2013 004v02 Debug and Optimization
AAME ARM Techcon2013 004v02 Debug and OptimizationAAME ARM Techcon2013 004v02 Debug and Optimization
AAME ARM Techcon2013 004v02 Debug and Optimization
 
LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?LCA13: CPUIDLE: One driver to rule them all?
LCA13: CPUIDLE: One driver to rule them all?
 
ARM AAE - Memory Systems
ARM AAE - Memory SystemsARM AAE - Memory Systems
ARM AAE - Memory Systems
 
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driverSFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
SFO15-502: Using generic cpuidle framework for ARM/ARM64 in your driver
 
Automative basics v3
Automative basics v3Automative basics v3
Automative basics v3
 
Ccna day2
Ccna day2Ccna day2
Ccna day2
 
Spi drivers
Spi driversSpi drivers
Spi drivers
 
Important cisco-chow-commands
Important cisco-chow-commandsImportant cisco-chow-commands
Important cisco-chow-commands
 
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, Intel
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, IntelXPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, Intel
XPDDS18: EPT-Based Sub-page Write Protection On Xenc - Yi Zhang, Intel
 

Similar to Q2.12: Idle Power States Nomenclature

Hibernation in Linux 2.6.29
Hibernation in Linux 2.6.29Hibernation in Linux 2.6.29
Hibernation in Linux 2.6.29Varun Mahajan
 
LCU13: ACPI power state mapping
LCU13: ACPI power state mappingLCU13: ACPI power state mapping
LCU13: ACPI power state mappingLinaro
 
Q2.12: Implications of Per CPU switching in a big.LITTLE system
Q2.12: Implications of Per CPU switching in a big.LITTLE systemQ2.12: Implications of Per CPU switching in a big.LITTLE system
Q2.12: Implications of Per CPU switching in a big.LITTLE systemLinaro
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Aananth C N
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 PresentationANURAG SEKHSARIA
 
Windows server power_efficiency___robben_and_worthington__final
Windows server power_efficiency___robben_and_worthington__finalWindows server power_efficiency___robben_and_worthington__final
Windows server power_efficiency___robben_and_worthington__finalBruce Worthington
 
Embedded systems 101 final
Embedded systems 101 finalEmbedded systems 101 final
Embedded systems 101 finalKhalid Elmeadawy
 
Cache performance-x86-2009
Cache performance-x86-2009Cache performance-x86-2009
Cache performance-x86-2009Léia de Sousa
 
Simple Virtualization Overview
Simple Virtualization OverviewSimple Virtualization Overview
Simple Virtualization Overviewbassemir
 
MCF5223x: Integrated ColdFire V2 Ethernet Microcontrollers
MCF5223x: Integrated ColdFire V2 Ethernet MicrocontrollersMCF5223x: Integrated ColdFire V2 Ethernet Microcontrollers
MCF5223x: Integrated ColdFire V2 Ethernet MicrocontrollersPremier Farnell
 
Chapter7_InputOutputStorageSystems.pptx
Chapter7_InputOutputStorageSystems.pptxChapter7_InputOutputStorageSystems.pptx
Chapter7_InputOutputStorageSystems.pptxJanethMedina31
 
Controlling processor c-state_usage_in_linux_nov2012
Controlling processor c-state_usage_in_linux_nov2012Controlling processor c-state_usage_in_linux_nov2012
Controlling processor c-state_usage_in_linux_nov2012sprdd
 

Similar to Q2.12: Idle Power States Nomenclature (20)

Hibernation in Linux 2.6.29
Hibernation in Linux 2.6.29Hibernation in Linux 2.6.29
Hibernation in Linux 2.6.29
 
LCU13: ACPI power state mapping
LCU13: ACPI power state mappingLCU13: ACPI power state mapping
LCU13: ACPI power state mapping
 
Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1Linux_swspnd_v0.3_pub1
Linux_swspnd_v0.3_pub1
 
Q2.12: Implications of Per CPU switching in a big.LITTLE system
Q2.12: Implications of Per CPU switching in a big.LITTLE systemQ2.12: Implications of Per CPU switching in a big.LITTLE system
Q2.12: Implications of Per CPU switching in a big.LITTLE system
 
Virtualization Support in ARMv8+
Virtualization Support in ARMv8+Virtualization Support in ARMv8+
Virtualization Support in ARMv8+
 
Nvidia tegra K1 Presentation
Nvidia tegra K1 PresentationNvidia tegra K1 Presentation
Nvidia tegra K1 Presentation
 
Phytium 64 core cpu preview
Phytium 64 core cpu previewPhytium 64 core cpu preview
Phytium 64 core cpu preview
 
Windows server power_efficiency___robben_and_worthington__final
Windows server power_efficiency___robben_and_worthington__finalWindows server power_efficiency___robben_and_worthington__final
Windows server power_efficiency___robben_and_worthington__final
 
Arm architecture overview
Arm architecture overviewArm architecture overview
Arm architecture overview
 
Embedded systems 101 final
Embedded systems 101 finalEmbedded systems 101 final
Embedded systems 101 final
 
Cache performance-x86-2009
Cache performance-x86-2009Cache performance-x86-2009
Cache performance-x86-2009
 
Arm11
Arm11Arm11
Arm11
 
Simple Virtualization Overview
Simple Virtualization OverviewSimple Virtualization Overview
Simple Virtualization Overview
 
MCF5223x: Integrated ColdFire V2 Ethernet Microcontrollers
MCF5223x: Integrated ColdFire V2 Ethernet MicrocontrollersMCF5223x: Integrated ColdFire V2 Ethernet Microcontrollers
MCF5223x: Integrated ColdFire V2 Ethernet Microcontrollers
 
HCS08 Overview
HCS08 OverviewHCS08 Overview
HCS08 Overview
 
Chapter7_InputOutputStorageSystems.pptx
Chapter7_InputOutputStorageSystems.pptxChapter7_InputOutputStorageSystems.pptx
Chapter7_InputOutputStorageSystems.pptx
 
PowerManagement
PowerManagementPowerManagement
PowerManagement
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
Controlling processor c-state_usage_in_linux_nov2012
Controlling processor c-state_usage_in_linux_nov2012Controlling processor c-state_usage_in_linux_nov2012
Controlling processor c-state_usage_in_linux_nov2012
 
Unit vi (2)
Unit vi (2)Unit vi (2)
Unit vi (2)
 

More from Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

More from Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Recently uploaded

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 

Recently uploaded (20)

08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Q2.12: Idle Power States Nomenclature

  • 2. 2 ARM Systems  SoC vendors differentiate on power  Power modes supported will differ from one device to another, in number and type  However there are a lots of commonalities  Some states retain context and others require context saving  Large proportion of the context is given by the ARM architecture and its implementation  Some states require cache management  Can require wake up after a period of time  States require communication with an external power controller A15 L2 CCI-400 Cache Coherent Interconnect Auxiliary Interfaces A15 A15 A15 L2 A7A7 A7A7 GIC-400 Interrupt control ARM systems are increasingly complex and hierarchical  Low power states can require cooperation between affected cores  Introduction of clusters gives rise to new levels of hierarchy in power states
  • 3. 3 What do you need to do to enter a state? Choose state Latencies Available? Save arch contextBSP hooks Clean cache(s) Will CPU be Shutdown? Use BSP timer program Arch Timer Can Arch Timer be used? Cache in Shutdown? Need to place cache in Memory ret? Enter state Place cache in Memory ret. Last man? Generic Arch Impl BSP Yes No Yes No No Yes Yes No Do I need to a Timed wakeup? No Yes
  • 4. 4 ACPI – For better or for worse  Linux world on ARM has adopted ACPI as its nomenclature for describing idle states  This nomenclature makes sense in the Intel world  C-states have tight definitions  There is broad equivalence between cores  In ARM however different platforms have different amount of states and different meanings for states  There is no equivalence  Different vendors expose different number and types of states  Numerically states are not equivalent eg C2 for one device is different to C2 in another
  • 5. 5 ACPI – For better or for worse  The only hard rule is that larger numbers mean deeper states  Eg C2 saves more power than C1  However there is no particular structure for state naming Cx??? Who is going down? It it a CPU is it a cluster? Is it all the on-line cores? Is a cache is affected? Which one? How is the cache affected? Do I need to save state?
  • 6. 6 Idle nomenclature aims and motivations  Give common definitions that can be used across systems from different providers. Allowing comparisons to take place  Aims to provide enough flexibility to allow differentiation  Aim to drive further code abstraction in OS, or CPU architectural layers of OSs  Encapsulating common OS operations  Which CPUs in system will be switched off -> a single core, a cluster, all cores?  Which caches are affected  When is state going to be lost? What state will be lost?  CPU state  Cache state  do caches need cleaning, invalidating, do they retain content  GIC
  • 7. 7 Proposal - Hierarchy Levels  A hierarchy level is bounded by a either:  A cache or a coherent interconnect  Proposal is to talk about power states affecting different hierarchy levels  With topology knowledge this combines affinity and cache level System C System A A9 L2 DDR L1 System B A9 SCU DDR L1 A9 L1 A15 cluster A15 SCU/L2 L1 A15 L1 A7 cluster A7 SCU/L2 L1 A7 L1 Cache Coherent Interconnect DDR H0 H1 H2 H3
  • 8. 8 States of Execution - Running  For a CPU (H0)  The CPU is executing code, higher hierarchy levels (eg caches and interconnects requires to support this CPU) are also running  For a cache or interconnect (Hx>0)  The cache or interconnect at the hierarchy level is fully operational
  • 9. 9 States of Execution - Waiting  For a CPU (H0)  The CPU not executing code (STANDBYWFI). All hierarchy levels > 0 are running or waiting  There is no loss of state from OS point of view. OS does not have to save context  CPU resumes execution at the instruction after the WFI.  Can include clock gating and retention techniques  For bigger (Hx>0) hierarchies bounded by a cache  Caches can be entered into low power states that retain memory content  As cache content is coherent the cache must be snoopable  A cache in a low power state must automatically wakeup to service snoops, transparently to the CPU  There could be an increase in snoop latency associated with this state
  • 10. 10 States of Execution - Shutdown  For a CPU (H0)  Core is power gated  All CPU state is lost. OS has to save context  GP registers, VFP/NEON, CP15, debug state (core domain debug registers and PMUs), CPU timers  Resumption of execution takes place at the reset vector  For deeper hierarchies (Hx>0)  The caches or interconnects contained in the hierarchy will be power gated. Any data contained will be lost  Caches need to be cleaned when entering the state, and invalidated when returning to a Running state
  • 11. 11 Some examples State Type CPU state L1 L2 State Lost WH0 WFI Live Live None SH1 Off Off Live CPU state L1 WH2 Shutdown Shutdown Available CPU state and L1 state SH2 Off Cleaned and Off Cleaned and Off CPU state L1 and L2
  • 12. 12 Some examples State Type State of CPUs L1 State Lost CPU affinity level 0 WH0 WFI Live None SH1 Off Cleaned and Off CPU state L1 state System affinity level 1 SH2 Off Cleaned and Off CPU state L1
  • 13. 13 Some examples State Type CPU or cluster state L1 L2 State Lost CPU affinity level 0 WH0 WFI Live Live None SH1 Off Off Live All CPU state and L1 state Cluster affinity level 1 WH2 Shutdown Shutdown Available CPU state L1 state SH2 Off Cleaned and Off Cleaned and Off CPU state L1 and L2 state System Affinity level 2 SH3 Off Off Off CPU state L1 and L2 state
  • 14. 14 Some examples A15 cluster SH2 A7 CPU0L1 in SH1 A7 CPU1L1 in RH1 WH0 WH2 Shutdown Running Waiting
  • 15. 15 State ID  Different HW platforms may support several states of each type  It is proposed that states can have individual IDs appended to the name of the state eg: [R/W/S][Hierarchy level]_[StateID]
  • 16. 16 Additional properties  An architected framework for idle power management needs to track a number of additional properties per state  GIC state  Latencies  Wake up timer  Availability  Other
  • 17. 17 Additional properties - GIC  In some shutdown states at higher levels, it is possible to loose GIC state  Needs to be saved  A flag needs to be associated with the appropriate system shutdown states A15 L2 CCI-400 Cache Coherent Interconnect Auxiliary Interfaces A15 A15 A15 L2 A7A7 A7A7 GIC-400 Interrupt control
  • 18. 18 Additional properties - Latencies  Entry/Exit: OSPM needs to know the aggregate time to:  Enter the state  Move the hierarchy level back into execution  Memory Latencies:  When a cache is in waiting, there will be a snoop latency associated with that state:  The OSPM should not use a cache waiting state if:  there are other bus masters which are active that can snoop into the cache AND their memory quality of service requirements cannot be satisfied due to the snoop latency
  • 19. 19 Additional properties – Wakeup Timer  ARMv7 provides architectural timers, generic timer, that can be used to wake up cores from waiting states  Generic Timer cannot be used in all Shutdown states  Software standardisation could work round this problem  Per state we need to represent a flag to indicate if external timer wake up is required  If not the OSPM programs the architectural timer  Otherwise it calls out to the BSP to program a timer
  • 20. 20 Additional properties - Availability  Availability of a power state is not just determined by latency  Current mode of other components in the system can determine availability of states:  E.g. GPU is running, or use of some clocks  Device power management within the OS can be used to gate states  big.LITTLE Migration models also introduce the concept of per CPU idle states
  • 21. 21 Additional properties – Other  Last Man  In some systems (mainly owing to affinitised trustedOS) only one specific CPU can take the cluster/system down  Target residency  Power consumed by state
  • 22. 22 Putting it all together Choose state Latencies Available? Save arch contextBSP hooks Clean cache(s) Will CPU be Shutdown? Use BSP timer program Arch Timer Can Arch Timer be used? Cache in Shutdown? Need to place cache in Memory ret? Enter state Place cache in Memory ret. Last man? OS Generic Arch Impl BSP Yes No Yes No No Yes Yes No Do I need to a Timed wakeup? No Yes