High performance computing on fault-prone nanotechnologies: novel microarchitecture techniques exploiting reliability-delay trad