Playing with fire: Transactional memory revisited for error-resilient and energy-efficient MPSOC execution