Source-:https://cs.ccsu.edu/~stan/classes/CS410/Notes16/11-ReliabilityEngineering.html
This is self monitoring architecture. So here computations carried across 2 channels, if they both provide same result then system is operating correctly else failure has occurred. Hardware and software in each module is different to avoid common mode failure.
This is N version programming. Here also software should be written by different person, different algorithm, different programming language etc. So what's the difference, both seem same thing to me