1.10 Checkpoints

Checkpointing allows you to save the state of components in a simulation, and restore the state when you start a new simulation. Saved states are called checkpoints.

Processor components that support checkpointing are:

  • ARMCortexA57xnCT.
  • ARMCortexA53xnCT.
  • ARMCortexA72xnCT.

Checkpointing limitations are:

  • Support for AArch32 state is not complete. Issues include interworking with AArch64 state.
  • No support for the GICv3 interface.
  • No support when using the functional model of the caches (when cache-state-modelled is on).
  • No preservation of TLB contents.
  • No preservation of exclusive monitor states.
  • No preservation of PMU states.
  • No preservation of architectural debug state.

These peripheral components pass checkpointing support tests, some with limits to their support:

PL011_Uart
No support of the use of input and output files (in_file and out_file parameters).
PL110_CLCD and PL111_CLCD
No known limits.
CCI400
No support when using the functional model of the caches (when cache-state-modelled is on).
GIC_400
No known limits.
MemoryMappedCounterModule
No known limits.

Model Shell supports checkpointing with the --save and --restore command-line options:

--save dirname
On simulation exit, save checkpoint to the directory dirname.
--restore dirname
On simulation startup, restore checkpoint to the directory dirname.

Use --save and --restore to restore a checkpoint on simulation startup and save a checkpoint on exit. For example:

model_shell -m $MODEL --restore checkpoint_dir --save checkpoint_dir

You can control checkpointing from a custom CADI client, from a SystemC application, with PyCADIShell, and with LISA+ components.

See $PVLIB_HOME/examples/CADI/checkpointing/ for an example of how to save and restore a checkpoint using CADI.

See $PVLIB_HOME/examples/SystemCExport/EVS_Platforms/EVS_Checkpointing/ for a SystemC example.

See $PVLIB_HOME/examples/python/checkpointing.py for an example of how to perform checkpointing with PyCADIShell.

The checkpointing feature is under development. It has limitations:

  • The checkpointing API will change in future releases of Fast Models.
  • Checkpoints are not compatible between different versions of Fast Models. Do not use a checkpoint from this version of Fast Models to restore the simulation state with a new version of Fast Models.
  • Many components do not support checkpointing. None of the Fixed Virtual Platforms that shipped with Fast Models support checkpointing, because they include components that do not have checkpointing support.
  • Remote clients that are connected to a CADI server cannot perform checkpointing.
  • LISA+ checkpointing elements are likely to change in future releases of Fast Models.
Non-ConfidentialPDF file icon PDF version100964_1142_00_en
Copyright © 2014–2018 Arm Limited or its affiliates. All rights reserved.