  The explosion of IoT and wearable devices determined a rising attention
towards energy harvesting as source for powering these systems. In this
context, many applications cannot afford the presence of a battery because of
size, weight and cost issues. Therefore, due to the intermittent nature of
ambient energy sources, these systems must be able to save and restore their
state, in order to guarantee progress across power interruptions. In this work,
we propose a specialized backup/restore controller that dynamically tracks the
memory accesses during the execution of the program. The controller then
commits the changes to a snapshot in a Non-Volatile Memory (NVM) when a power
failure is detected. Our approach does not require complex hybrid memories and
can be implemented with standard components. % and integrated in any MCU with
Results on a set of benchmarks show an average $8\times$ reduction in backup
size. Thanks to our dedicated controller, the backup time is further reduced by
more than $100\times$, with an area and power overhead of only 0.4\% and 0.8\%,
respectively, w.r.t. a low-end IoT node.
