Harvesting through array partitioning: a solution to achieve defect tolerance