You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -15,24 +15,19 @@ To achieve optimal low power consumption, ensure that both the radio and applica
15
15
For reference implementations, see the :ref:`multicore_idle_test` samples.
16
16
These samples demonstrate configurations where the radio core remains idle while the application core remains active.
17
17
18
-
Power states
19
-
************
18
+
Software power states
19
+
*********************
20
20
21
-
The nRF54H20 ARM Cortex CPUs currently support the following software power states:
21
+
The ARM Cortex CPUs of the nRF54H20 SoC currently support the following software power states:
22
22
23
23
* Active
24
24
* Idle
25
-
* Local suspend to Ram
26
-
27
-
Overview
28
-
********
25
+
* Idle with cache disabled
26
+
* Local suspend to RAM
29
27
30
28
Each CPU in the nRF54H20 SoC tries to preserve as much power as possible, independently from other CPUs.
31
29
The power management subsystem, operating independently within each CPU, continuously selects the most optimal power state based on the current conditions of the CPU.
32
30
33
-
Power states details
34
-
********************
35
-
36
31
The following sections describes the details of each of the software power states available on the nRF54H20 SoC.
37
32
38
33
Active
@@ -48,7 +43,7 @@ Active
48
43
49
44
* - RAM
50
45
- Banks used by the executed code are enabled.
51
-
Other banks may be in any state.
46
+
Other banks can be in any state.
52
47
53
48
* - System state
54
49
- *System ON*
@@ -82,7 +77,7 @@ Idle
82
77
83
78
* - RAM
84
79
- Banks used by the executed code are enabled.
85
-
Other banks may be in any state.
80
+
Other banks can be in any state.
86
81
87
82
* - System state
88
83
- *System ON*
@@ -104,8 +99,54 @@ The wake-up latency is higher than in *Active*, but lower than in the other powe
104
99
The primary sources of wake-up latency are the wake-up of the ``MRAMC`` and the startup of clock sources.
105
100
The maximum latency depends on the MRAM power state configured by the System Controller.
106
101
107
-
Local Suspend to RAM
108
-
********************
102
+
Idle with cache disabled
103
+
========================
104
+
105
+
*Idle with cache disabled* is a lightweight sleep state where the CPU is suspended and the contents of the L1 caches are discarded.
106
+
107
+
.. list-table::
108
+
:widths: auto
109
+
110
+
* - CPU
111
+
- Powered on but not clocked.
112
+
Its state is retained in the hardware flip-flops.
113
+
114
+
* - RAM
115
+
- Enabled or retained depending on the hardware state.
116
+
RAM in caches is disabled.
117
+
118
+
* - System state
119
+
- * *System ON* if at least one other CPU or a peripheral clocked > 32 kHz is active.
120
+
* *System ON Idle* if all CPUs are disabled and the only active peripherals are clocked with 32 kHz (real-time part of ``GRTC``, ``RTC``, ``WDT``) or System Off wake-up sources.
121
+
* *System ON All Idle* if all other CPUs and all peripherals except System Off wake-up sources are disabled.
122
+
Only available in domains without DVFS.
123
+
124
+
The hardware automatically selects one of these states based on the activity of other CPUs and peripherals.
125
+
126
+
* - Peripherals
127
+
- All can be active.
128
+
The local peripherals are powered and preserve their state.
129
+
The state of inactive peripherals in other domains is retained in the hardware flip-flops.
130
+
131
+
* - Coprocessors
132
+
- All can be active.
133
+
The state of inactive coprocessors is retained according to their selected sleep state.
134
+
135
+
* - System timer (based on GRTC)
136
+
- Active
137
+
138
+
The primary sources of wake-up latency are:
139
+
140
+
* Writing back dirty cache lines
141
+
* Waking up the MRAMC
142
+
* Refilling L1 caches
143
+
* Restarting clock sources
144
+
145
+
Latency is influenced by the number of dirty cache lines at sleep entry and the cache miss rate after wake-up.
146
+
The maximum latency depends on the MRAM power state configured by the System Controller via the ``MRAMC.POWER.AUTOPOWERDOWN`` setting.
147
+
148
+
Local suspend to RAM
149
+
====================
109
150
110
151
*Local Suspend to RAM* is a sleep state that balances between power consumption and wake-up latency.
111
152
@@ -153,100 +194,22 @@ Instead, their state is retained by software in RAM.
153
194
The power consumption in this state depends on the overall System state but is lower than in any of the *Idle* states.
154
195
The wake-up latency is higher than in any of the *Idle* states due to the CPU state restoration procedure.
155
196
156
-
Selecting the optimal power state
157
-
*********************************
158
-
159
-
In the nRF54H20 SoC, each local domain is responsible for selecting the power state that results in minimal power consumption while maintaining an acceptable level of performance.
160
-
161
-
Entering a deeper sleep state leads to power savings when the system is idle, but it requires increased power consumption to enter and exit the sleep state.
162
-
There is a minimum sleep duration that justifies the energy spent on entering and exiting a sleep state, and this duration varies for each sleep state.
163
-
164
-
In the SoC, a local domain has full control over entering and exiting local sleep states, allowing it to assess whether entering these sleep states is optimal at any given moment.
165
-
However, entering sleep states associated with system-off requires cooperation between local domains and the System Controller.
166
-
Local domains have limited control over the time and energy required to enter or exit system-off, as well as the power consumption during system-off.
167
-
168
-
Latency management
169
-
******************
170
-
171
-
The sources of wake-up latency in the nRF54H20 SoC can be categorized into two types: local and global.
172
-
Each CPU is responsible for managing its latency sources, with local sources handled by local domains and global sources managed by the System Controller.
173
-
174
-
Local cores are responsible for handling latencies caused by restoring the system from suspend-to-RAM states.
175
-
Local cores schedule their wake-up in advance of expected events.
176
-
The timing of expected events is reported to the power management subsystem in the RTOS by the software modules anticipating these events.
177
-
The power management subsystem sets a ``GRTC`` channel in advance of the next expected event to compensate for local wake-up latency.
178
-
179
-
The System Controller is responsible for handling latencies caused by restoring the system from the system-off state (the warm boot procedure latency).
180
-
The System Controller schedules the system wake-up from the system-off state in advance of the next ``GRTC`` event to compensate for the warm-boot latency of the system.
181
-
182
-
Because the warm-boot latency is compensated by the System Controller, from a local CPU's perspective, the latency when restoring from the local-off state and the system-off state is expected to be the same.
183
-
184
-
Latency in local domains
185
-
========================
186
-
187
-
Any local software module (like a device driver) can anticipate events like ISRs.
188
-
Some of these events have predictable timing, while others have unpredictable timing.
189
-
Handling the latency of events with unpredictable timing is the same in both simple and complex systems.
190
-
191
-
If handling an event with predictable timing requires restoring the state of the software module or the peripherals used by this module before the event is processed, the software module is responsible for scheduling a timer event in advance.
192
-
This scheduled event is used to restore the state of the software module or peripherals.
193
-
194
-
The Power Management subsystem in a local domain is responsible for scheduling a wake-up in advance to compensate for the domain's core state restoration latency from the local power state.
195
-
The wake-up time scheduled in advance by the power management subsystem is combined with the advance time added by the software module.
196
-
This approach ensures that the local domain and the software modules anticipating an event have sufficient time to fully restore before the event occurs, allowing the event to be handled without latency.
197
-
198
-
Unretained hardware classification
199
-
**********************************
200
-
201
-
Some power states in the nRF54H20 SoC result in powering off certain peripherals.
202
-
The state of these peripherals is not retained by hardware and must be restored by software before the peripheral is activated.
203
-
204
-
See the following sections for the lists of peripheral groups and the related software modules responsible for restoring the peripheral's state for each group.
205
-
206
-
Peripherals in local domains
207
-
============================
208
-
209
-
All local domains include a common set of hardware modules.
210
-
In addition to these, most local domains also contain domain-specific peripherals.
211
-
212
-
Common peripherals for all local domains
213
-
----------------------------------------
214
-
215
-
Each local domain contains a set of peripherals that are classified consistently across all local domains.
216
-
The following table summarizes the active peripherals that need handling when exiting the *Local Suspend to RAM* state.
0 commit comments