A method of synchronizing the state of a plurality of computing modules in an electronic system, each computing module having a processor, comprising: saving at least a portion of processor state data for each of the plurality of computing modules; hashing at least a portion of the saved processor state data for each of the plurality of computing modules; comparing the processor hashes for the processor state data; re-synchronizing the plurality of computing modules if the majority of computing modules are determined to have the same processor state data, and the minority of computing modules are determined to have different processor state data, characterized in that the re-synchronizing comprises: sending the saved processor state data from a first majority computing module to a first minority computing module; confirming that the state data of a second majority computing module is the same as the saved state data from the first majority computing module or the saved state data of the first minority computing module after sending the saved processor state data from the first majority computing module to the minority computing module; flagging an error if the state data is not the same; and restoring the processor state data of a majority computing module based on the majority computing module's saved processor state data in response to completion of the re-synchronization. saving at least a portion of processor state data for each of the plurality of computing modules; hashing at least a portion of the saved processor state data for each of the plurality of computing modules; comparing the processor hashes for the processor state data; re-synchronizing the plurality of computing modules if the majority of computing modules are determined to have the same processor state data, and the minority of computing modules are determined to have different processor state data, characterized in that the re-synchronizing comprises: sending the saved processor state data from a first majority computing module to a first minority computing module; confirming that the state data of a second majority computing module is the same as the saved state data from the first majority computing module or the saved state data of the first minority computing module after sending the saved processor state data from the first majority computing module to the minority computing module; flagging an error if the state data is not the same; and restoring the processor state data of a majority computing module based on the majority computing module's saved processor state data in response to completion of the re-synchronization. sending the saved processor state data from a first majority computing module to a first minority computing module; confirming that the state data of a second majority computing module is the same as the saved state data from the first majority computing module or the saved state data of the first minority computing module after sending the saved processor state data from the first majority computing module to the minority computing module; flagging an error if the state data is not the same; and restoring the processor state data of a majority computing module based on the majority computing module's saved processor state data in response to completion of the re-synchronization.