Neurocomputing and Associative Memories Based on Emerging Technologies: Co-optimization of Technology and Architecture