An Adaptive Defect-Tolerant Multiprocessor Array Architecture