Nonvolatile Memories for Nano and Giga Electronics