2
\$\begingroup\$

I have recently been introduced to the IEC61508 and the ISO 26262 and trying to get my head around how to make a hardware design safe. This question is related to article "Four Steps To ISO 26262 Safety Mechanism Insertion And Validation" written by PING YEUNG.

For the design interfaces, parity checks can be performed to ensure accurate data transmission between the interface modules and the interface controllers inside the design. Once the data are inside the design, they can be protected with data parity on the buses and error-correction code (ECC) in the storage elements. On-chip bus transactions can be observed by dedicated bus monitors. Critical control components, such as functional safety mechanisms and arbitration logic, will best be protected with triple module redundancy and majority voting. Central and embedded processors can be protected with double modular redundancy along with lockstep checkers.

Register-level insertion is more surgical. It inserts safety mechanisms in the storage elements, such as register duplication and parity. This approach is commonly used to protect control and state machine structures. Some register- level safety mechanisms include:

  1. Parity generation and checking for critical control elements
  2. Double modular redundancy for a selected list of registers
  3. Triple modular redundancy for a selected list of registers
  4. Error correction, and single-error correction with double-error detection for banks of registers
  5. Protocol checking ensures valid state transitions for finite state machines Safety synthesis can add parity checking to all or a list of special registers in a module.

Now if we use parity and ECC, we can detect and possibly correct errors. However, if we use double or triple redundancy, it will not help us to detect faults when they occur.

  1. Doesn't making system "safe" means we can detect if something goes wrong like it happens with parity and CRC? Also,
  2. With triple modular redundancy we vote between three values and the final value is the majority of the t`hree. Then how does double modular redundancy work when we can't know which value is correct if the two are different?
\$\endgroup\$

3 Answers 3

3
\$\begingroup\$

Yes, safety means to be able to detect if something goes wrong.

You get that with double modular redundancy, because if you receive two different values, you can simply shut down the system (i.e. trigger the safety alarm) to be safe. Safety is not only about error correction.

\$\endgroup\$
2
  • \$\begingroup\$ Some systems are where the failure of the device/design will cause mortal danger to the user. A simple example is aircraft and cars. Is it really enough that error is detected and that is it? Shouldn't the design continue to work safely inspite of failure which could happen by having redundant components that can take over the processing task? \$\endgroup\$
    – gyuunyuu
    Commented Aug 11, 2023 at 10:25
  • \$\begingroup\$ Good comment. Yes, there are systems where error correction is more important than error detection. (One does not exclude the other.) \$\endgroup\$ Commented Aug 12, 2023 at 13:10
3
\$\begingroup\$

You have to do a risk assesment, determine your risk tolerance, apply any mitigations that come from design changes and process, and determine residual risk after applying those mitigations. Then you can determine the risk reduction (SIL or ASIL) needed.

Sure, it is beneficial/necessary to understand design and diagnostic measures available to you, but you shouldn't throw the kitchen sink at the design without understanding what risks you need to mitigate and by how much. Adding hardware or software complexity to your design does not necessarily decrease risk as they can introduce risks all by themselves.

There are also pragmatic considerations... how much cost/effort is required with the various approaches.

  • Can you really apply all the measures you are thinking about?
  • Can you do so with all the engineering discipline required to assure that these are implemented/verified/validated safely?
  • Do you have the processes in place that are necessary to support a safety product development, including a qualified safety team?
  • Can you afford to have the product certified?

It takes time to strike the right balance. If you haven't done so, spend time considering the required/highly-recommended/recommended practices for hadware and software in IEC 61508. I think those are in part 3 and 4 for hardware and software (can't remember for sure off the top of my head).

\$\endgroup\$
3
  • 1
    \$\begingroup\$ I can see that introducing CRC and Parity everywhere in memory modules and busses inside the RTL design, lock step for FSMs and tripple redundancy for all registers is not possible. I thought that was the aim, just put CRC, lock step (for FSMs) and tripple redundancy everywhere and we are done. \$\endgroup\$
    – gyuunyuu
    Commented Aug 6, 2023 at 19:17
  • \$\begingroup\$ When making hardware safe, shouldn't it be that we just slap CRC bits and parity bits in all memory blocks (RAMs, shift registers e.t.c), we put lock step mechanism into all FSMs, we put double or tripple redundancy on all large modules that do some data processing operation and in this way the design is made safe, done. \$\endgroup\$
    – gyuunyuu
    Commented Aug 11, 2023 at 10:22
  • 1
    \$\begingroup\$ Absolutely not. There are no shortcut solutions, or prescriptive solutions to functional safety. Start with ISO 12100 and get a basic understanding of risk assessment and get training on IEC 61508. Jumping to design "solutions" without a strong understanding of the foundational principles of functional safety is simply a waste of time and will lead to dangerous results. This cannot be overstated. \$\endgroup\$
    – user324996
    Commented Aug 11, 2023 at 13:35
2
\$\begingroup\$

enter image description here

https://www.researchgate.net/publication/278964222_Adaptive_Reconfigurable_Voting_for_Enhanced_Reliability_in_Medium-Grained_Fault_Tolerant_Architectures

The output of the DMR circuits can be use to enter in restricted operation for maximize the availability and trigger the safety alarm. The SIL depends of several factors : Reliability, Availability, Maintenability.

For mask the fault it requires for example, an human intervention or additional electronics to diagnose more precisely which element is faulty.

\$\endgroup\$
1
  • \$\begingroup\$ I realize that the voter logic itself is also prone to failure (obviously) so does't it become the weakest link in the chain? \$\endgroup\$
    – gyuunyuu
    Commented Aug 11, 2023 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.