Hardware fault tolerance