IP Library Granted Patent US 12,596,424
Granted Patent B2
US 12,596,424 · App. 18/670,083 · Granted Apr 7, 2026

Method for managing hibernation of an embedded system

Inventor: Stephane Le Coq (Thorigné-Fouillard, FR)
Assignee: STMicroelectronics International N.V.
G06F1/3275G06F1/3287
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,596,424
App. No.
18/670,083
Granted
Apr 7, 2026
Kind
B2
Abstract

The present disclosure relates to a method for managing the deep sleep mode of an embedded system. In embodiments, the method includes determining a value of the electrical charge used, during a deep sleep mode of the system, for saving software-context data into a non-volatile memory of the system; determining a value of a current used, during a deep sleep mode of the system, for saving software-context data into a volatile memory of the system; determining, from the previously determined values, a threshold value defining a duration beyond which a power consumption caused by saving software-context data into the non-volatile memory is less than that into the volatile memory; saving the software-context data into the non-volatile or volatile memory according to the expected duration of deep sleep mode of the system.

Claims (290)

1 . A method for managing a deep sleep mode in an embedded system, the method comprising:

determining an electrical charge (Conso Non vola ) for storing software-context data in a non-volatile memory of the embedded system during the deep sleep mode;

determining a current (Courant Sauv Vola ) for storing the software-context data in a volatile memory of the embedded system at a first temperature during the deep sleep mode;

determining a threshold based on the determined electrical charge and the current, the threshold defining a duration beyond which a first power consumption for storing the software-context data in the non-volatile memory is less than a second power consumption for storing the software-context data in the volatile memory;

storing the software-context data in the non-volatile memory in response to an expected duration of deep sleep mode being greater than the threshold; and

storing the software-context data in volatile memory in response to the expected duration being less than or equal to the threshold.

2 . The method according to claim 1 , wherein the electrical charge (Conso Non vola ) is expressed in Coulomb, and determined by the equation:

Conso

No

n

v

o

l

a

=

(

Courant

P

r

o

g

N

o

n

V

o

l

a

×

d

Prog

Non

Vola

)

+

(

Courant

Eff

Non

Vola

×

d

Eff

Non

Vola

)

+

(

Courant

Copie

Non

Vola

×

d

Copie

Non

Vola

)

,

Courant

P

r

o

g

N

o

n

V

o

l

a

where

Courant

Prog

Non

Vola

is a current used to program the non-volatile memory in Amperes;

d

Prog

Non

Vola

is a duration for programming the non-volatile memory in seconds;

Courant

Eff

Non

Vola

is a current used to erase a part of the non-volatile memory in Amperes;

d

Eff

Non

Vola

is a duration for erasing a part of the non-volatile memory in seconds;

Courant

Copie

Non

Vola

is a current used to copy the software-context data into the non-volatile memory in Amperes; and

d

Copie

Non

Vola

is a duration to copy the software-context data into the non-volatile memory in seconds.

3 . The method according to claim 2 , wherein the threshold is determined by the equation:

Seuil

Conso

=

Conso

Non

Vola

Courant

Sauv

Vola

.

is the current for the software context data in the volatile memory.

4 . The method according to claim 1 , wherein storing the software-context data in the non-volatile memory is further under a condition that the expected duration of the deep sleep mode is less than or equal to a minimum duration of the deep sleep mode guarantying a desired lifetime of the non-volatile memory, the minimum duration expressed by the equation: minimum duration=(d Lifex 365x24x3600xSize Context )/(N Max_Cycles xSize FreeMemory ), where d Life is a desired lifetime of the non-volatile memory in years; Size Context is a size of the software-context data; N Max_Cycles is a theoretical maximum number of write/erase cycles of the non-volatile memory before its deterioration; and Size FreeMemory is a free memory size of the non-volatile memory.

5 . The method according to claim 1 , wherein storing the software-context data in the non-volatile memory is further under condition that a factor defined by the equation:

N

Cycles

Vie

=

N

Cycles

Compteur

×

Taille

Contexte

Taille

Mémoire

Libre

is less than a theoretical maximum number of write/erase cycles of the non-volatile memory before its deterioration, where N CyclesCounter is a number of write/erase cycles already performed by the non-volatile memory, Size Context is a size of the software-context data, and Size FreeMemory is a free memory size of the non-volatile memory.

6 . The method according to claim 1 , wherein storing the software-context data in the non-volatile memory comprises:

programming a flag indicating that software-context data is stored in the non-volatile memory;

determining a start-of-writing address of the non-volatile memory;

writing the software-context data in the non-volatile memory from the start-of-writing address;

subtracting from the expected duration of the deep sleep mode a duration of writing the software-context data in the non-volatile memory; and

switching the power supply of the volatile memory off.

7 . The method according to claim 6 , further comprising exiting the deep sleep mode, wherein exiting the deep sleep mode comprises:

reading the flag;

directly setting the embedded system in an active state in response to the flag indicating that the software-context data is stored in the volatile memory; and

reading the software-context data from the non-volatile memory starting from the start-of-writing address, writing the software-context data in the volatile memory, and erasing blocks of memory of the non-volatile memory storing the software-context data in response to the flag indicating that the software-context data is stored in non-volatile memory.

8 . The method according to claim 7 , wherein exiting the deep sleep mode further comprises resuming the power supply of the volatile memory before or after reading the flag.

9 . The method according to claim 7 , wherein exiting the deep sleep mode further comprises determining a reason for exiting the deep sleep mode of the embedded system before reading the flag, wherein the embedded system is directly set in the active state without reading the flag in response to exiting the deep sleep mode being due to a resetting of the embedded system, an initial startup of the embedded system, an over-the-air software update, or a watchdog event, and wherein the flag is read in response to exiting the deep sleep mode not related to the resetting of the embedded system, the initial startup of the embedded system, the over-the-air software update, or the watchdog event.

10 . An embedded system configured to operate in a deep sleep mode, the embedded system comprising:

a non-volatile memory;

a volatile memory; and

a central circuit, the central circuit configured to:

determine an electrical charge for storing software-context data in the non-volatile memory during the deep sleep mode,

determine a current for storing the software-context data in the volatile memory of the embedded system at a first temperature during the deep sleep mode,

determine a threshold based on the determined electrical charge and the current, the threshold defining a duration beyond which a first power consumption for storing the software-context data in the non-volatile memory is less than a second power consumption for storing the software-context data in the volatile memory,

store the software-context data in the non-volatile memory in response to an expected duration of the deep sleep mode being greater than the threshold, and

store the software-context data in the volatile memory in response to the expected duration being less than or equal to the threshold.

11 . The embedded system of claim 10 , wherein the non-volatile memory is a Flash memory, and wherein the volatile memory is a random-access memory.

12 . The embedded system of claim 10 , wherein the electrical charge (Conso Non vola ) is expressed in Coulomb, and determined by the equation:

Conso

Non

Vola

=

(

Courant

Prog

Non

Vola

×

d

Prog

Non

Vola

)

+

(

Courant

Eff

Non

Vola

×

d

Eff

Non

Vola

)

+

(

Courant

Copie

Non

Vola

×

d

Copie

Non

Vola

)

,

where

Courant

Prog

Non

Vola

is a current used to program the non-volatile memory in Amperes;

d

Prog

Non

Vola

is a duration for programming the non-volatile memory in seconds;

Courant

Eff

Non

Vola

is a current used to erase a part of the non-volatile memory in Amperes;

d

Eff

Non

Vola

is a duration for erasing a part of the non-volatile memory in seconds;

Courant

Copie

Non

Vola

is a current used to copy the software-context data into the non-volatile memory in Amperes; and

d

Copie

Non

Vola

is a duration to copy the software-context data into the non-volatile memory in seconds.

13 . The embedded system of claim 12 , wherein the threshold is determined by the equation:

Seuil

Conso

=

Conso

Non

Vola

Courant

Sauv

Vola

.

Current soft_vol is the current for storing the software cntext data in the volatile memory.

14 . The embedded system of claim 10 , wherein storing the software-context data in the non-volatile memory is further under a condition that the expected duration of the deep sleep mode is less than or equal to a minimum duration of the deep sleep mode guaranteeing a desired lifetime of the non-volatile memory, the minimum duration expressed by the equation: minimum duration=(d Life x365x24x3600xSize Context )/(N Max_Cycles xSize FreeMemory ), where d Life is a desired lifetime of the non-volatile memory in years; Size Context is a size of the software-context data; N Max_Cycles is a theoretical maximum number of write/erase cycles of the non-volatile memory before its deterioration; and Size FreeMemory is a free memory size of the non-volatile memory.

15 . The embedded system of claim 10 , wherein storing the software-context data in the non-volatile memory is further under condition that a factor defined by the equation:

N

Cycles

Vie

=

N

Cycles

Compteur

×

Taille

Contexte

Taille

Mémoire

Libre

is less than a theoretical maximum number of write/erase cycles of the non-volatile memory before its deterioration, where N CyclesCounter is a number of write/erase cycles already performed by the non-volatile memory, Size Context is a size of the software-context data, and Size FreeMemory is a free memory size of the non-volatile memory.

16 . The embedded system of claim 10 , wherein storing the software-context data in the non-volatile memory comprises:

programming a flag indicating that the software-context data is stored in the non-volatile memory;

determining a start-of-writing address of the non-volatile memory;

writing the software-context data in the non-volatile memory from the start-of-writing address;

subtracting from the expected duration of the deep sleep mode a duration of writing the software-context data in the non-volatile memory; and

switching the power supply of the volatile memory off.

17 . The embedded system of claim 16 , further comprising exiting the deep sleep mode, wherein exiting the deep sleep mode comprises:

reading the flag;

directly setting the embedded system in an active state in response to the flag indicating that the software-context data is stored in the volatile memory; and

reading the software-context data from the non-volatile memory starting from the start-of-writing address, writing the software-context data in the volatile memory, and erasing blocks of memory of the non-volatile memory storing the software-context data in response to the flag indicating that the software-context data is stored in non-volatile memory.

18 . The embedded system of claim 17 , wherein exiting the deep sleep mode further comprises resuming the power supply of the volatile memory before or after reading the flag.

19 . The embedded system of claim 17 , wherein exiting the deep sleep mode further comprises determining a reason for exiting the deep sleep mode of the embedded system before reading the flag, wherein the embedded system is directly set in the active state without reading the flag in response to exiting the deep sleep mode being due to a resetting of the embedded system, an initial startup of the embedded system, an over-the-air software update, or a watchdog event, and wherein the flag is read in response to exiting the deep sleep mode not related to the resetting of the embedded system, the initial startup of the embedded system, the over-the-air software update, or the watchdog event.

20 . A non-transitory computer-readable media storing computer instructions, wherein the instructions, when executed by a processor, cause an embedded system to:

determine an electrical charge for storing software-context data in a non-volatile memory of the embedded system during a deep sleep mode;

determine a current for storing the software-context data in a volatile memory of the embedded system at a first temperature during the deep sleep mode;

determine a threshold based on the determined electrical charge and the current, the threshold defining a duration beyond which a first power consumption for storing the software-context data in the non-volatile memory is less than a second power consumption for storing the software-context data in the volatile memory;

store the software-context data in the non-volatile memory in response to an expected duration of the deep sleep mode being greater than the threshold; and

store the software-context data in the volatile memory in response to the expected duration being less than or equal to the threshold.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2024
From: STMICROELECTRONICS (GRAND OUEST) SAS
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 068165/0449 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2024
From: LE COQ, STEPHANE
To: STMICROELECTRONICS (GRAND OUEST) SAS
Reel/Frame 067489/0817 →
Priority Claims (1)
FR 2306353 · Jun 20, 2023 · national
Continuity (1)
Related Publication 20240427408A1 · Dec 26, 2024
References Cited (11)
US 11886266B2 · Wang · 2024 [cited by examiner]
US 20040230851A1 · Chao · 2004 [cited by examiner]
US 20080295531A1 · Song · 2008 [cited by examiner]
US 20140359224A1 · Bisht · 2014 [cited by examiner]
US 20150039922A1 · Chalhoub et al. · 2015 [cited by applicant]
US 20160320826A1 · Taha · 2016 [cited by examiner]
US 20170177870A1 · Hildebrand · 2017 [cited by applicant]
US 20190286219A1 · Anazawa · 2019 [cited by examiner]
US 20210271412A1 · Cheong · 2021 [cited by examiner]
US 20220300173A1 · Malik · 2022 [cited by examiner]
US 20220317757A1 · Rao · 2022 [cited by examiner]