Intermittent computing
Intermittent computing is a computing paradigm tailored for systems that operate under unreliable or irregular power supply conditions. These systems, often powered by ambient energy sources such as solar, radio frequency, kinetic energy, or piezoelectric energy, experience frequent power losses that disrupt continuous execution. Intermittent computing ensures that computation can proceed effectively despite such power failures, enabling devices to make forward progress and maintain useful operations.
Traditional computing systems assume a stable and continuous power supply. However, in many emerging applications, especially those involving the Internet of Things, devices are deployed in environments where consistent power is unavailable. These devices rely on energy harvested from their surroundings, leading to intermittent power availability. Intermittent computing addresses the challenges posed by such environments by enabling systems to retain computational progress across power cycles, ensuring reliability and efficiency in energy-constrained scenarios.
This approach is particularly beneficial for applications in remote or inaccessible locations, where replacing or recharging batteries is impractical. By leveraging energy harvesting and non-volatile memory technologies, intermittent computing facilitates the development of sustainable and maintenance-free devices capable of operating effectively in diverse and challenging environments.
Energy harvesting
Energy harvesting is the process of capturing and converting ambient energy from the environment into electrical power to operate electronic systems. It serves as a sustainable alternative to conventional power sources, particularly in scenarios where replacing or recharging batteries is impractical. Despite its promise, energy harvesting introduces several challenges, including low conversion efficiency, unpredictable availability, and significant temporal variation in energy supply.Several energy harvesting methods are used to support embedded and intermittent computing systems. While technologies such as wind and hydro-based harvesters exist, their size and deployment requirements often make them unsuitable for compact Internet of Things applications. Characteristics and limitations of each method need to be considered for energy-aware system designs to enhance computational progress under constrained energy conditions.
Photovoltaic
Photovoltaic energy harvesting is one of the most common approaches for powering wireless sensor systems. It utilizes solar panels to convert sunlight into electrical energy. Under sufficient lighting conditions, PV systems can support perpetual operation. However, their effectiveness is significantly reduced at night or in dim environments. Recent developments have focused on indoor PV cells tailored for converting artificial light, making them ideal for deployment in controlled indoor environments such as hospitals, factories, and commercial spaces.Radio frequency (RF)
Radio frequency energy harvesting converts electromagnetic waves into electrical energy using specially designed antennas. While ambient RF energy levels are generally low, dedicated wireless energy transmission—either integrated with communication signals or sent separately—can deliver sufficient power to operate low-power devices. In networked applications, this enables distributed power sharing across multiple nodes.Kinetic
Kinetic energy harvesting involves transforming mechanical motion into electricity. This method is particularly well-suited for environments with regular movement—such as wearable technology, transportation systems, or rotating machinery. Inertial generators, which rely on the relative displacement between a suspended mass and a stationary frame, are often employed and optimized to resonate with the frequency of motion for greater efficiency.Piezoelectric
Piezoelectric generators make use of materials that generate electrical voltage when subjected to mechanical stress or deformation. These devices typically produce high voltage but low current and are effective in systems exposed to repetitive mechanical vibrations. Their passive operation and compact size make them useful for embedding in small-scale sensing platforms.Intermittent computing techniques
Intermittent computing systems are designed to operate reliably despite frequent and unpredictable power losses, which often result from reliance on ambient energy harvesting. To maintain computational progress under such constraints, several software and architectural techniques have been developed. These include checkpointing, task-based execution, and reactive energy-aware methods, each offering different trade-offs between complexity, efficiency, and reliability.Checkpointing
Checkpointing is one of the foundational strategies for ensuring progress in intermittently powered systems. In this approach, the system periodically saves its computational state—including register values, memory contents, and control flow data—to non-volatile memory. After a power failure, the system can resume execution from the last checkpoint without starting over. This method is appealing due to its simplicity and minimal requirements on the programmer. However, checkpointing incurs significant overhead due to frequent memory operations, and failures that occur during a checkpoint may corrupt the saved state or lead to wasted energy.Task-based execution
Task-based execution breaks a program into discrete, atomic tasks that can be executed independently. Each task is designed to be completed within a single power cycle based on the device’s energy budget. Instead of saving the full system state, only minimal data is preserved at task boundaries, significantly reducing the overhead compared to traditional checkpointing. This approach improves energy efficiency but increases programming complexity, as developers must ensure tasks are idempotent and identify the precise state that needs to be retained.Reactive approaches
Reactive checkpointing enhances adaptability by responding dynamically to changes in energy conditions. Systems employing this strategy monitor energy indicators, such as supply voltage, to anticipate power failure. When energy falls below a critical threshold, the system initiates a checkpoint to preserve its state before shutdown occurs.In some implementations, the system uses voltage threshold triggers to automatically enter low-power mode and save critical data when a drop is detected. Advanced techniques refine this model by tracking which memory blocks have been modified, reducing the need to back up unchanged data and thereby saving energy. Nonetheless, reactive schemes must ensure sufficient residual energy is available to complete the checkpoint and handle challenges such as preserving failure-atomic sections, which must execute without interruption.