Fault Tolerance through Self-configuration in Nanoscale Processors