An instruction
processing pipeline 6 is provided. This has error detection and error
recovery circuitry 20 associated with one or more of the pipeline stages. If an error is detected within a
signal value within that pipeline stage, then it can be repaired. Part of the error
recovery may be to flush upstream program instructions from the
instruction pipeline 6. When multi-threading, only those instructions from a thread including an instruction which has been lost as a consequence of the error
recovery need to be flushed from the
instruction pipeline 6. Instruction can also be selected for flushing in dependence upon characteristics such as privileged level, number of dependent instructions etc. The
instruction pipeline may additionally / alternatively be provided with more than one main storage element 26, 28 associated with each
signal value with these main storage elements 26, 28 being used in an alternating fashion such that if a
signal value has been erroneously captured and needs to be repaired, there is still available a main storage element 26, 28 to properly capture the signal value corresponding to the following
program instruction. In this way flushes can be avoided.