A simultaneous and redundantly threaded, pipelined processor executes the
same set of instructions simultaneously as two separate threads to provide
fault tolerance. One thread is processed ahead of the other thread so that
the instructions in one thread are processed through the processor's
pipeline ahead of the corresponding instructions from the other thread.
The thread, whose instructions are processed earlier, places its uncached
reads in a read queue. Subsequently, the second thread places its uncached
reads in the read queue. A compare circuit periodically scans the read
queue for matching uncached read instructions. If otherwise matching
instructions differ in their target address, then a fault has occurred in
the processing and the compare circuits initiates fault recovery. If
comparison of the two instructions reveals they are identical, the compare
circuit allows only a single uncached read instruction to pass to the
system main memory. The data returned from the uncached read is replicated
and passed to each thread. In this way, transient faults are detected with
a minimum amount of hardware overhead and independent of differences in
the actual order of program execution or differences in branch
speculation.
Un processeur simultané et de manière superflue fileté, canalisé exécute le même ensemble d'instructions simultanément comme deux fils séparés pour fournir la tolérance de fautes. Un fil est traité en avant de l'autre fil de sorte que les instructions en un fil soient traitées par la canalisation du processeur en avant des instructions correspondantes de l'autre fil. Le fil, dont les instructions sont traitées plus tôt, place le son uncached lit dedans une file d'attente lue. Plus tard, le deuxième fil place le son uncached lit dedans la file d'attente lue. Un circuit de comparer balaye périodiquement la file d'attente indiquée pour assortir uncached des instructions indiquées. Si les instructions autrement assorties diffèrent dans leur adresse de cible, alors un défaut s'est produit dans le traitement et les circuits de comparer lance le rétablissement de défaut. Si la comparaison des deux instructions indique ils sont identiques, le circuit de comparer permet seulement un simple uncached lisent l'instruction de passer à la mémoire centrale de système. Les données retournées du uncached lu sont repliées et passées à chaque fil. De cette façon, des défauts passagers sont détectés avec une quantité minimum de matériel aérienne et de indépendant des différences dans l'ordre réel de l'exécution du programme ou des différences dans la spéculation de branche.