Skip to content

JITLoad

Description

The JITLoad module describes a load that uses a Just-In-Time checkpointing (JIT) approach to operate in the presence of power-failures (i.e., intermittently) according to the implementation in this paper. The device starts performs periodic checkpointing (with a specific period, length, and current consumption), once the capacitor voltage passes a certain threshold (\(V_{Chkpt}\)), turns off at \(V_{OFF}\) and restores the checkpoints after recharging to \(V_{ON}\) (with a specific period, length, and current consumption). In between, while computing, the device consumes a configurable constant current.

Architecture

Parameters

Parameter man./opt. Value Description
currents m List of current consumptions in A Map of current consumptions corresponding to each state, using the following format:
t_checkpoint m Time in s Duration of checkpoint operation
t_checkpoint_period m Time in s Period of checkpoint operation
t_restore m Time in s Duration of restore operation
t_restore_startup m Time in s Duration of first restore operation after boot
v_checkpoint m Voltage in V Checkpoint voltage threshold to start checkpointing once the capacitor voltage goes below this value
v_on m Voltage in V Turn-on threshold to enter restore operation once the capacitor voltage exceeds this value
v_off m Voltage in V Turn-off threshold to disable load once the load voltage goes below this voltage (i.e., minimum operating voltage)
log o Boolean Define whether normal logging (i.e., only if any state change happens) is enabled (Default: False)
verbose_log o Boolean Define whether verbose logging (i.e., at each update call) is enabled (Default: False, can be enabled for smooth plotting)

Example configuration(s)

load_config = {
    'type' : 'JITLoad',
    'name' : 'Battery-free Gameboy',
    'settings' : {  'currents' : {   'RESTORE' : 2.65e-3*0.97,
                                     'COMPUTE' : 3.28e-3*0.97,
                                     'CHECKPOINT' : 2.87e-3*0.97},
                    't_checkpoint' : 33e-3,
                    't_checkpoint_period' : 270e-3,
                    't_restore' : 255e-3,
                    't_restore_startup' : 255e-3,
                    'v_on' : 2.9,
                    'v_off' : 2.8,
                    'v_checkpoint' : 3.4,
                    'log' : True}
    }