Toward Reliable, Secure, and Energy-Efficient Multi-Core System Design