Improving performance, energy-efficacyciency and error-resilience of multicore embedded systems through speculative synchronization mechanisms