ScEpTIC.emulator.intermittent_executor package¶
Subpackages¶
- ScEpTIC.emulator.intermittent_executor.configurator package
- Submodules
 - ScEpTIC.emulator.intermittent_executor.configurator.dino module
 - ScEpTIC.emulator.intermittent_executor.configurator.hibernus module
 - ScEpTIC.emulator.intermittent_executor.configurator.mementos module
 - ScEpTIC.emulator.intermittent_executor.configurator.quickrecall module
 - ScEpTIC.emulator.intermittent_executor.configurator.ratchet module
 - Module contents
 
 - ScEpTIC.emulator.intermittent_executor.interruption_managers package
- Submodules
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.base module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.energy_measure module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.input module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.memory_evaluate module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.memory_locate module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.memory_size module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.output module
 - ScEpTIC.emulator.intermittent_executor.interruption_managers.profiling module
 - Module contents
 
 
Submodules¶
ScEpTIC.emulator.intermittent_executor.anomalies module¶
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.BaselineDataAnomaly(cell_address, checkpoint_pc, causing_pc)¶ Bases:
object
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.BaselineInputAnomaly(input_name, first_checkpoint_pc, second_checkpoint_pc, required_access_model, shown_access_model)¶ Bases:
object
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.DataAnomaly(cell, current_pc, read_clock, is_false_positive)¶ Bases:
objectRepresentation of a data anomaly
- 
get_type()¶ Returns the type of the data anomaly.
- 
raise_exception()¶ Raises an exception to signal the anomaly.
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.InputPolicyAnomaly(checkpoint_pc, access_clock, access_pc, checkpoint_clock, input_name, measured_consistency_model, imposed_consistency_model)¶ Bases:
objectRepresents an Input Policy Anomaly
- 
get_type()¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.LinearAnomaly(consumer_op, producer_op, consumer, producer, false_positive)¶ Bases:
objectRepresents a Base anomaly for the DataLinearInterruptionManager
- 
add_element(anomaly)¶ Add an element to the anomaly element list
- 
add_other_pc(other_anomaly)¶ Add another call path that causes the same anomaly
- 
get_consumer_pc()¶ Returns a textual representation of the consumer program counter
- 
get_debug_data_element()¶ 
- 
get_element()¶ Return the only element of the newly found anomaly
- 
get_producer_pc()¶ Returns a textual representation of the producer program counter
- 
heap_memory_traces= ['allocation', 'deallocation']¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.MemoryAccessAnomaly(generating_pc, generating_clock, current_pc, current_clock, checkpoint_pc, message)¶ Bases:
object- 
get_type()¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.MemoryMapAnomaly(cell, current_pc, read_clock, is_false_positive)¶ Bases:
ScEpTIC.emulator.intermittent_executor.anomalies.DataAnomalyRepresentation of a Memory Map anomaly
- 
get_type()¶ Returns the type of the data anomaly.
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.OutputAnomaly(checkpoint_pc, access_clock, access_pc, checkpoint_clock, output_name, measured_consistency_model, imposed_consistency_model)¶ Bases:
objectRepresents an output anomaly
- 
get_type()¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.SingleStackARAnomaly(dump_cell, current_cell, element, is_false_positive)¶ Bases:
objectRepresents a single element of a Stack Activation Record anomaly.
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.StackARAnomaly(anomalies, checkpoint_pc, checkpoint_clock, reset_pc)¶ Bases:
object- 
get_type()¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.anomalies.WARAnomaly(cell, current_pc, read_clock, is_false_positive)¶ Bases:
ScEpTIC.emulator.intermittent_executor.anomalies.DataAnomalyRepresentation of a Write After Read anomaly
- 
get_type()¶ Returns the type of the data anomaly.
- 
 
ScEpTIC.emulator.intermittent_executor.checkpoint_manager module¶
- 
class 
ScEpTIC.emulator.intermittent_executor.checkpoint_manager.CheckpointManager(config, vmstate)¶ Bases:
objectManages checkpoint and restore operations
- 
do_checkpoint()¶ Performs a checkpoint of the selected elements and dumps the whole vm state. The saved checkpoint is the one restored by the do_restore routine. The vm state is saved for comparisons with the obtained status after a restore.
- 
do_dump()¶ Performs a dump of the vm state
- 
do_restore()¶ Restores the previously taken checkpoint.
- 
get_simple_dump()¶ Returns a dump of register file, stack, heap and gst.
- 
get_vm_state_diff()¶ Compares the vm state with the vm dump taken during the checkpoint. It returns a list containing the memory section names that differs.
- 
get_vm_state_diff_elements()¶ Returns a dictionary containing the differences for each memory component between the current state and the saved dump.
- 
process_checkpoint_routines(functions, declarations)¶ If dynamic checkpoint mechanisms: removes all references to the checkpoint and restore routines (if any). If static checkpoint mechanisms: removes all references to restore routine and removes target from checkpoint routine calls.
NB: Checkpoint routine is considered just as a marker to verify when interrupt and test the execution.
- 
reset()¶ Resets the saved dump and checkpoint
- 
restore_dump()¶ Restores the previously taken dump, to make memory consistent again.
- 
static 
validate_configuration(configuration)¶ Validates the checkpoint configuration. If an error is found, a ConfigurationException is raised.
- 
 
ScEpTIC.emulator.intermittent_executor.profiling module¶
- 
class 
ScEpTIC.emulator.intermittent_executor.profiling.ProfilingChangeInputVal(name, value)¶ Bases:
ScEpTIC.AST.elements.instruction.InstructionChanges input value at runtime. Used as marker by the corresponding interruption manager.
- 
get_uses()¶ Returns a list containing the names of the registers used by this instruction. (used by register allocation)
- 
get_val()¶ 
- 
name= 'sceptic_change_input'¶ 
- 
replace_reg_name(old_reg_name, new_reg_name)¶ Skeleton. Replaces the name of a register used by the instruction with a new one. (used by register allocation)
- 
tick_count= 0¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.profiling.ProfilingLog(name, variable)¶ Bases:
ScEpTIC.AST.elements.instruction.InstructionProfiling log operation for profiling purposes. Used as marker by the corresponding interruption manager.
- 
get_run_info(run_id)¶ 
- 
get_uses()¶ Returns a list containing the names of the registers used by this instruction. (used by register allocation)
- 
get_val()¶ 
- 
name= 'sceptic_log'¶ 
- 
power_failures= None¶ 
- 
replace_reg_name(old_reg_name, new_reg_name)¶ Skeleton. Replaces the name of a register used by the instruction with a new one. (used by register allocation)
- 
tick_count= 0¶ 
- 
tracking= None¶ 
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.profiling.ProfilingReset(mode, value)¶ Bases:
ScEpTIC.AST.elements.instruction.InstructionReset operation for profiling purposes. Used as marker by the corresponding interruption manager.
- 
evaluate_reset_condition(power_failures)¶ 
- 
get_uses()¶ Returns a list containing the names of the registers used by this instruction. (used by register allocation)
- 
get_val()¶ 
- 
name= 'sceptic_reset'¶ 
- 
replace_reg_name(old_reg_name, new_reg_name)¶ Skeleton. Replaces the name of a register used by the instruction with a new one. (used by register allocation)
- 
 
- 
class 
ScEpTIC.emulator.intermittent_executor.profiling.RunInfo(io_type, pc, global_clock, run_id, function_name, io_name, io_value)¶ Bases:
object
- 
ScEpTIC.emulator.intermittent_executor.profiling.pre_parse_profiling_log(text, ir_function_prefix)¶ Pre parse profiling log, so to avoid errors due to the lack of profiling_log definition in the C source code.
- 
ScEpTIC.emulator.intermittent_executor.profiling.process_profiling_calls(ir_function_prefix, functions, declarations)¶ Processes the calls to profiling operations in each function.