Designing systems for emerging memory technologies