Coding for Phase Change Memory Performance Optimization