A method for constructing and addressing a nanoscale memory with known
addresses and for tolerating defects which may arise during manufacture
or device operational lifetime. During construction, nanoscale wires with
addresses are stochastically assembled. During a programming phase,
nanoscale wires are stochastically selected using their stochastic
addresses through microscale inputs and a desired address code is
associated with the selected nanoscale wires. Memory addresses are
associated to the codes and then selected using the known codes during
read/write operations from/to the memory.