1. A method for handling soft error in a microprocessor system, comprising: detecting a soft error, indicating a register having soft error to an instruction unit, flushing microprocessor pipelines, identifying locations from which to recover a good architectural state based on execution resources used for processing; and recovering said good architectural state from duplicate execution resources used for processing.