A simultaneous and redundantly threaded, pipelined processor can execute
the same set of instructions simultaneously as two separate threads to
provide, for example, fault tolerance. One thread is processed ahead of
the other thread thereby creating a "slack" between the two threads 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, is called the
"leading" thread. The other thread is the "trailing" thread. By setting
the amount of slack appropriately, all or at least some of the cache
misses or branch misspeculations encountered by the trailing thread can be
resolved by the time the corresponding instructions from the trailing
thread are fetched and processed through the pipeline. The invention,
therefore, improves the performance of a fault tolerant, simultaneous and
redundantly threaded processor.
Un processeur simultané et de manière superflue fileté, canalisé peut exécuter le même ensemble d'instructions simultanément comme deux fils séparés pour fournir, par exemple, la tolérance de fautes. Un fil est traité en avant de l'autre fil créant de ce fait un "mou" entre les deux fils 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, s'appelle le fil "principal". L'autre fil est le fil "de remorquage". En plaçant la quantité de mou convenablement, tous les ou au moins certains absence dans l'antémémoire ou misspeculations de branche produits par le fil de remorquage peuvent être résolus avant que les instructions correspondantes du fil de remorquage soient cherchées et traitées par la canalisation. L'invention améliore, donc, d'exécution du processeur tolérant, simultané et de manière superflue fileté de défaut.