Lock-Step mode execution on Cortex-R5

Dear Forum,

Could some one please elaborate on ,

1. what is Lock-Step Mode ?

2. What is the General HW configuration required ?

3. How to make a program/application executable in Lock-Step mode ?

- In Cortex-R5 , what are all compared at every state ? all processor registers ? what else ?

- How does processors know that, at what state they should compare results/or what ever ?
- Do the software program need to incorporate some special  lock-step instruction ? just like memory barrier instructions?

4. Please provide sample HW initialization for cortex-R5 ?

5. If lock step need some special programming in applications , please provide sample program/application to run in lock step mode?

Thanks,

Ravinder Are

Parents
  • Hi,

    Lock-Step mode is a mode of operation used in safety critical applications. It consists of 2 copies of the Cortex-R5 logic, which are run offset a couple of cycles from each other. The idea is to protect the system from transient errors (for example a soft error caused by an alpha particle strike). The memories are protected by using ECC schemes (usually capable of detecting double bit errors, or correcting single bit errors), so both cores can reference a single memory. The outputs from both cores are compared every cycle, and if at any point they differ, an error can be signalled (this is usually unrecoverable within the system).

    I'm not sure if you're a software engineer or a chip designer - if you're a software engineer, then you would need to find a device that already supports this hardware configuration (for example the Texas Instruments Hercules TMS570 series). If you're designing a new chip, then this is a design-time decision to place two copies of the core logic (along with the associated comparators).

    An additional option the Cortex-R5 offers is split/lock. This has the option to select at boot time whether the two cores are run in lockstep, or split as 2 cores. This would require two copies of the memories to be placed too, to allow for "split" operation. Again, the option to have a split/lock processor is decided on when the device is designed.

    To a programmer, this process is transparent. No special coding is needed and the comparison between locked core happens automatically.

    If you can provide some more details about your particular application/use case I may be able to give a more specific answer.

    regards,

    Jon

Reply
  • Hi,

    Lock-Step mode is a mode of operation used in safety critical applications. It consists of 2 copies of the Cortex-R5 logic, which are run offset a couple of cycles from each other. The idea is to protect the system from transient errors (for example a soft error caused by an alpha particle strike). The memories are protected by using ECC schemes (usually capable of detecting double bit errors, or correcting single bit errors), so both cores can reference a single memory. The outputs from both cores are compared every cycle, and if at any point they differ, an error can be signalled (this is usually unrecoverable within the system).

    I'm not sure if you're a software engineer or a chip designer - if you're a software engineer, then you would need to find a device that already supports this hardware configuration (for example the Texas Instruments Hercules TMS570 series). If you're designing a new chip, then this is a design-time decision to place two copies of the core logic (along with the associated comparators).

    An additional option the Cortex-R5 offers is split/lock. This has the option to select at boot time whether the two cores are run in lockstep, or split as 2 cores. This would require two copies of the memories to be placed too, to allow for "split" operation. Again, the option to have a split/lock processor is decided on when the device is designed.

    To a programmer, this process is transparent. No special coding is needed and the comparison between locked core happens automatically.

    If you can provide some more details about your particular application/use case I may be able to give a more specific answer.

    regards,

    Jon

Children
More questions in this forum