@@ -412,6 +412,68 @@ and/or costly.
412412 of the SoC watchdog toward multiple operating systems, however it
413413 could go beyond that, and reach higher levels of complexity.
414414
415+ * ** System Decomposition**
416+
417+ The previous points can be leveraged and extended to cases where the
418+ safety requirements rely on multiple subsystems, possibly across different
419+ software layers.
420+
421+ As usual, it is extremely important to assess upfront the requirements
422+ for availability.
423+
424+ A requirement for simply detecting the potential interference can be easier
425+ to deal with, than a requirement to ensure continued safety operations,
426+ in the presence of interference.
427+
428+ Leaving aside, for now, considerations about the latter scenario, the former
429+ one still carries a need for the detection to happen within a maximum interval,
430+ measured from the beginning of the interference.
431+
432+ With these two requirements in mind:
433+ * detecting interference
434+ * detecting the interference within a maximum allowed time
435+
436+ One can attempt to isolate those subsystems directly involved, and investigate
437+ the possibility of periodically validating its continued integrity.
438+
439+ Here, the basic concept is that one could be able to provide - periodically -
440+ a preset stimuli, and compare the live output of the system with the
441+ pre-calculated expected one, that the system should produce, when free from
442+ interference.
443+
444+ Taking as example an image recognition pipeline, tasked with receiving an input
445+ from a sensor and recognising items from a given set (e.g. a speed limit sign),
446+ this could be implemented in the following way:
447+ * periodically inject a known image, of a specific object(s)
448+ * expect that within a given time the system will correctly identify the object(s)
449+
450+ Such an approach has the advantage of not requiring any special partitioning of
451+ the architecture (e.g. which parts must be implemented as user processes and
452+ which parts must be kernel components).
453+
454+ However, to work, it must also satisfy several conditions:
455+ * the monitoring must happen form a context that is at least of equal ASIL level
456+ * the monitoring context must not be affected by the interference it is supposed to detect
457+ * the testing must have sufficient coverage for detecting all the relevant types of inteference
458+ * the testing must account for any recently collected hystorical data
459+ that the system might rely on.
460+ (e.g. lighting statistics from past frames might get corrupted and affect
461+ the following evaluations, but if they are not part of the periodic self test,
462+ this corruption wil lgo unnoticed, because the system tested is different from
463+ the system in real use)
464+
465+ The requirements of the Fault Deteting Time Interval (FTDI) and the intrinsic
466+ latency introduced by the mechanism responsible for detecting nterference must
467+ be confirmed to be compatible.
468+
469+ Should it be required to ensure availability, it could be possible to use some
470+ form of redundancy, like 2 out of 3 majority, where multiple instances are
471+ employed, to create a voting mechanism prior to actually driving any
472+ actuator that can have relevance for safety.
473+ This works as long as it can be proven that said instances asre sufficiently
474+ decoupled to not be victim of the same interference, simultaneously.
475+
476+
415477## ** Hardware features are not a replacement for good design**
416478
417479*** Against stupidity the gods themselves contend in vain.***
0 commit comments