Phase-Change Memory: Device Physics And Application To Non-Von Neumann Computing