Software Component Replication for Improved Fault-Tolerance: Can Multicore Processors Make It Work?