The Synthesis of Memristive Neuromorphic Circuits

As Moores Law has come to a halt, it has become necessary to explore alternative forms of computation that are not limited in the same ways as traditional CMOS technologies and the Von Neumann architecture. Neuromorphic computing, computing inspired by the human brain with neurons and synapses, has been proposed as one of these alternatives. Memristors, non-volatile devices with adjustable resistances, have emerged as a candidate for implementing neuromorphic computing systems because of their low power and low area overhead. This work presents a C++ simulator for an implementation of a memristive neuromorphic circuit. The simulator is used within a software framework to design and evaluate these circuits. The first chapter provides a background on neuromorphic computing and memristors, explores other neuromorphic circuits and their programming models, and finally presents the software framework for which the simulator was developed. The second chapter presents the C++ simulator and the genetic operators used in the generation of the memristive neuromorphic networks. Next, the third chapter presents a verification of the accuracy of the simulator, and provides some analysis of designs. These analyses focus on variation, the Axon-Hillock neuron model, limited programming resolutions, and online learning mechanisms. Finally, the fourth chapter discusses future considerations. Thus, this thesis presents the C++ simulator as a tool to generate memristive neuromorphic networks. Additionally, it shows how the simulator can be used to understand how the underlying hardware impacts the application level performance of the network.

[1]  L. Chua Memristor-The missing circuit element , 1971 .

[2]  Catherine D. Schuman,et al.  Neuroscience-inspired inspired dynamic architectures , 2014, Proceedings of the 2014 Biomedical Sciences and Engineering Conference.

[3]  L. Abbott,et al.  Competitive Hebbian learning through spike-timing-dependent synaptic plasticity , 2000, Nature Neuroscience.

[4]  Andrew S. Cassidy,et al.  Convolutional networks for fast, energy-efficient neuromorphic computing , 2016, Proceedings of the National Academy of Sciences.

[5]  Risto Miikkulainen,et al.  Evolving Neural Networks through Augmenting Topologies , 2002, Evolutionary Computation.

[6]  Catherine D. Schuman,et al.  Parallel Evolutionary Optimization for Neuromorphic Network Training , 2016, 2016 2nd Workshop on Machine Learning in HPC Environments (MLHPC).

[7]  H. Gundersen,et al.  Total regional and global number of synapses in the human brain neocortex , 2001, Synapse.

[8]  Luis A. Plana,et al.  SpiNNaker: Mapping neural networks onto a massively-parallel chip multiprocessor , 2008, 2008 IEEE International Joint Conference on Neural Networks (IEEE World Congress on Computational Intelligence).

[9]  Razvan V. Florian,et al.  Reinforcement Learning Through Modulation of Spike-Timing-Dependent Synaptic Plasticity , 2007, Neural Computation.

[10]  Andrew S. Cassidy,et al.  Cognitive computing programming paradigm: A Corelet Language for composing networks of neurosynaptic cores , 2013, The 2013 International Joint Conference on Neural Networks (IJCNN).

[11]  Geoffrey E. Hinton,et al.  ImageNet classification with deep convolutional neural networks , 2012, Commun. ACM.

[12]  Karsten Beckmann,et al.  Techniques for Improved Reliability in Memristive Crossbar PUF Circuits , 2016, 2016 IEEE Computer Society Annual Symposium on VLSI (ISVLSI).

[13]  Luciano Lavagno,et al.  Electronic Design Automation for Integrated Circuits Handbook - 2 Volume Set , 2006 .

[14]  Giacomo Indiveri,et al.  Neuromorphic Engineering , 2015, Handbook of Computational Intelligence.

[15]  Marvin Minsky,et al.  Perceptrons: expanded edition , 1988 .

[16]  Pierre Yger,et al.  PyNN: A Common Interface for Neuronal Network Simulators , 2008, Front. Neuroinform..

[17]  Karsten Beckmann,et al.  A practical hafnium-oxide memristor model suitable for circuit design and simulation , 2017, 2017 IEEE International Symposium on Circuits and Systems (ISCAS).

[18]  Catherine D. Schuman,et al.  A CAD System for Exploring Neuromorphic Computing with Emerging Technologies , 2017 .

[19]  Catherine D. Schuman,et al.  DANNA: A neuromorphic software ecosystem ☆ , 2016, BICA 2016.

[20]  Alan F. Murray,et al.  Spike timing dependent plasticity (STDP) can ameliorate process variations in neuromorphic VLSI , 2005, IEEE Transactions on Neural Networks.

[21]  Alan M. Frieze,et al.  Random graphs , 2006, SODA '06.

[22]  Steve B. Furber,et al.  Algorithm and software for simulation of spiking neural networks on the multi-chip SpiNNaker system , 2010, The 2010 International Joint Conference on Neural Networks (IJCNN).

[23]  Garrett S. Rose,et al.  Circuit Techniques for Online Learning of Memristive Synapses in CMOS-Memristor Neuromorphic Systems , 2017, ACM Great Lakes Symposium on VLSI.

[24]  Catherine D. Schuman,et al.  An evolutionary optimization framework for neural networks and neuromorphic architectures , 2016, 2016 International Joint Conference on Neural Networks (IJCNN).

[25]  Andrew S. Cassidy,et al.  TrueNorth Ecosystem for Brain-Inspired Computing: Scalable Systems, Software, and Applications , 2016, SC16: International Conference for High Performance Computing, Networking, Storage and Analysis.

[26]  Garrett S. Rose,et al.  A synchronized axon hillock neuron for memristive neuromorphic systems , 2017, 2017 IEEE 60th International Midwest Symposium on Circuits and Systems (MWSCAS).

[27]  Cong Xu,et al.  Impact of process variations on emerging memristor , 2010, Design Automation Conference.

[28]  Karsten Beckmann,et al.  A Hafnium-Oxide Memristive Dynamic Adaptive Neural Network Array , 2016 .

[29]  Catherine D. Schuman,et al.  Dynamic adaptive neural network arrays: a neuromorphic architecture , 2015, MLHPC@SC.

[30]  Michael J. Fischer,et al.  The String-to-String Correction Problem , 1974, JACM.

[31]  Konstantin Andreev,et al.  Balanced Graph Partitioning , 2004, SPAA '04.