We present both an overview and a perspective of recent experimental advances and proposed new approaches to performing computation using memristors. A memristor is a 2-terminal passive component with a dynamic resistance depending on an internal parameter. We provide an brief historical introduction, as well as an overview over the physical mechanism that lead to memristive behavior. This review is meant to guide nonpractitioners in the ﬁeld of memristive circuits and their connection to machine learning and neural computation. Keywords: memristors; neuromorphic computing; analog computation; machine learning 1. Introduction The present review aims at providing a structured view over the many areas in which memristor technology is becoming popular. As in many other hyped topics, there is a risk that most of the activity we see today will dissipate into smoke in the coming years. Hence, we have carefully selected a set of topics for which we have experience and we believe will remain relevant when memristors move out of the spotlight. After a general overview on memristors, we provide a historical overview of the topic. Next, we present an intuitive and a mathematical view on the topic, which we trust is needed to understand why anybody would consider alternative forms of computation. Thus, experts in the ﬁelds might ﬁnd this article slow-paced. The memristor was introduced as a device that “behaves somewhat like a nonlinear resistor with memory” [ 1], the resistance of the component depends on the history of the applied inputs: voltage or current. Different curves of the applied input elicit a different dynamic response and ﬁnal resistance of the memristor. In addition, if we remove the input after certain time, leave the component alone, and come back to use it, the device will resume its operation from a resistance very similar to the one in which we left it; that is, they act as non-volatile memories. Furthermore, memristors also react to the direction of the current, i.e., they have polarity. This polarity is shown explicitly on the symbol of the memristor used in electronic diagrams: a square signal line (as opposed to a zigzag line for the resistor), inside an asymmetrically ﬁlled rectangle, as in Figure 1. Figure 1. Electronic symbol of the memristor. Technologies 2018 ,6, 118; doi:10.3390/technologies6040118 www.mdpi.com/journal/technologies Technologies 2018 ,6, 118 2 of 43 The interplay between the response behavior and the non-volatility of the device deﬁnes its usability either as a storage device or for more involved purposes such as neuromorphic computing. The present article gravitates around the fact that memristors are electronic components which behave similarly to human neuronal cells, and are an alternative building block for neuromorphic chips. Memristors, unlike other proposed components with neural behavior, can perform computation without requiring complementary metal–oxide–semiconductor (CMOS) if not for readout reasons. After the experimental realization of a memristor by Strukov et al., which brought them to their current popularity, Leon Chua wrote an article titled “If it’s pinched it’s a memristor” [ 2]. The title refers to the fact that the voltage drop across the device shows a hysteresis loop pinched to the zero of the voltage–current axes when controlled with a sinusoidal voltage or current. The claim by Chua is that a device which satisﬁes this property must necessarily be a memristor. Chua also proved that such a device cannot be obtained from the combination of nonlinear capacitors, inductors and resistors [ 1–3]. It has been shown, however, that this property is a modeling deﬁciency for redox-based resistive switches [4]. Resistive switching was of interest even before the 2008 article. For instance, the review of of Waser and Aono shows that Titanium Dioxide had been in the radar for non-volatile memories for decades. Nevertheless, one can identify a clear explosion of interest after the 2008 publication. Next, we give a list of established and new companies developing memristors technology using a variety of compounds. The list is given without a particular order as these companies work on various types of compounds and type of memristors (for instance both resistive random-access memory (ReRam) and phase-change material (PCM)). Speciﬁcally, we are aware of: HP , SK Hynix, IBM, IMEC, Fujitsu, Samsung, SMIC, Sharp, TSMC, NEC, Panasonic, Macromix, Crossbar Inc., Qimonda, Ovonyx, Samsung, Intel, KnowM, 4DS Memories Ltd., Global Foundaries, Western Digital (before called SanDisk), Toshiba, Macronix, Nanya, NEC, Rambus, ST Microelectronics, Winbond, Adesto Technologies Corporation, HRL Laboratories LLC, and Elpida. Going into the many physical mechanisms that make a memristive device work does require a deep knowledge of material properties. For example, the hysteretic behavior can be caused by Joule heating, as shown in an example taken from macroscopic granular materials [ 5]. In addition, hysteresis is a phenomenon that is common in nanoscale devices and it can be derived using Kubo response theory [ 6]. Kubo response theory is used to calculate the correction to the resistance induced by a time dependent perturbation: this is the formal framework to address resistive switching due to either electrical, thermal or mechanical stresses in the material. We can classify physical mechanisms that lead to memristive behavior in electronic components in four main types:  Structural changes in the material (PCM like): in these materials, the current or the applied voltage triggers a phase transition between two different resistive states;  Resistance changes due to thermal or electric excitation of electrons in the conduction bands (anionic): in these devices, the resistive switching is due to either thermally or electrically induced hopping of the charge carriers in the conducting band. For instance, in Mott memristors, the resistive switching is due to the quantum phenomenon known as Mott insulating-conducting transition in metals, which changes the density of free electrons in the material.  Electrochemical ﬁlament growth mechanism: in these materials, the applied voltage induces ﬁlament growth from the anode to the cathode of the device, thus reducing or increasing the resistance;  Spin-torque: the quantum phenomenon of resistance change induced via the giant magnetoresistance switching due to a change in alignment of the spins at the interface between two differently polarized magnetic materials. These mechanisms above are truly different in nature, and whilst not the only ones considered in the literature, are the most common ones. We provide a technical introduction to these mechanisms in Appendix A for completeness. Technologies 2018 ,6, 118 3 of 43 The primary application of memristors, as we will show in this article, is towards neuromorphic computing. The word neuromorphic was coined by Carver Mead [ 7] to describe analog circuits which can mimic the behavior of biological neurons. In the past several years, the ﬁeld has experienced an explosive development in terms of manufacturing neuromorphic novel chip architectures which can reproduce the behavior of certain parts of the brain circuitry. Among the components used in neuromorphic circuits, we consider memristors whose behavior resembles the one of a certain type of neurons. The analogies between biological neuronal systems and electronic circuits are manifold: conservation of charge, thresholding behavior, and integration to mention just a few. For instance, diffusion of calcium across the membrane can be mapped to diffusion in electronic components, and a computational role associated to the circuit design. In addition, it is known that the brain is power efﬁcient: roughly twenty percent of an individual’s energy is spent on brain activity, and this is roughly around 10 W. Besides their role in biological neural models (Section 6), we also discuss theoretical approaches to memristive circuits and their connection to machine learning (Sections 4 and 5). The connection to machine learning is complemented with an overview on analog computation (Section 5.1). Historically, the very ﬁrst (known) computer was analog. It is (approximately) 2100 years old, and it has been found in a shipwreck off the cost of the island of Antikythera at the beginning of the past century [ 8] (only recently, it has been understood as a model of planet motion). Despite our roots in analog computation, our era is dominated by digital computers. Digital computers have been extremely useful at performing several important tasks in computation. We foresee that future computers will likely be a combination of analog (or quantum analog) and digital (or quantum digital) computing chips. At the classical level, several analog computing systems have been proposed. Insofar, most of the proposed architectures are based on biological systems, whose integration with CMOS can be challenging, and this is the reason why analog electronic components are seen as promising alternatives [9,10]. Digital computation has been dominated by the von Neumann architecture in combination with CMOS technology. Within this architecture, we ﬁnd two types of memory: Random Access Memory (RAM), a volatile and quick memory in which computation is performed, and non-volatile Hard Disk (HD) for long-term storage of information. The neat separation between memory (RAM and HD) and computing (the processors or central processing unit (CPU)) is a key feature of computation using von Neumann architecture. It requires that the data is split into packets, transferred to the CPU where computation is performed, and then repeated until the full computation task has been completed. As far as our understanding goes, this separation is not present in the brain, in which memory and processing happen within the same units. Several proposed architectures that mimic this property have been proposed, most of them based on memristors [ 11]. This type of computation is referred to as memcomputing. This article is organized as follows: We ﬁrst provide a historical introduction to memristors, as it is understood by the authors (Section 2). We then provide the key ideas behind the technology with simple mathematical models (Section 3). Albeit separated from the main text, we have provided an introduction to the main technology and physical principles underlying memristors in Appendix A. We then focus our gaze on the description and use of memristors both for data storage (Section 4) and data processing (Section 5): the former is the current target for marketing the technology, the second is believed to be the main application of memristors in the long run. The similarity between memristors and neurons allows the implementation of machine learning on chip via Memristor/FPGA (ﬁeld-programmable gate array) interfaces using crossbar arrays, we cover this topic in Section 4.1. We have dedicated Section 5.1 to overview the fundamental topic of analog computation, followed by a brief recapitulation of machine learning techniques that can be seamlessly used with memristors (Sections 5.2–5.3). We discuss in Section 6 computation as an epiphenomenon of memristor dynamics and in connection with CMOS. We close the article with some remarks that should help in the discussion of the topics covered. Technologies 2018 ,6, 118 4 of 43 2. Brief History of Memristors The earliest known occurrence of a “memristive” behavior in circuit components is in the study, by Sir Humprey Davy’s, of arc (carbon) lamps [ 12], dated to the late 19th century. Another example, which was key to the discovery of the radio, is the coherer [ 13,14]. The coherer was invented by Branly [ 15] after the studies of Calzecchi-Onesti, and inspired Marconi’s radio receiver [ 16]. Branly’s coherer serves as perfect homemade memristor [ 5], as it simply requires either a (ﬁne) metallic ﬁlling or some metallic beads, and it falls within the Physics discipline of electrical properties of granular media. Coherers are very sensitive to magnetic ﬁelds, and thus can act as a radio receiver and as we describe in Appendix A. They do posses a typical hysteric behavior which is associated with memristive components. At the simplest level of abstraction, a memristor is a very peculiar type of nonlinear resistance with an hysteresis (e.g., they possess an internal memory). Currently, the discussion is focused not only on the application of this technology to novel computation and memory storage, but also on the fundamental role of memristors in circuit theory [ 17]. While this discussion is important, we ﬁrst discuss why memristive behavior is not uncommon in analog computation. We thus use the analog of hydraulic computers. Hydraulic computers were built in Russia during the 1930s before valves and semiconductor were invented. The hydraulic computers designed by the Russian scientist Vladimir Lukyanov were used to solve differential equations; other models like the Monetary National Income Analogue Computer (or MONIAC) [18], would be later employed by the Bank of England to perform economic forecasts. The idea behind these computers was to use hydraulics to solve differential equations. As Kirchhoff laws can be stated for any conservative ﬁeld, we have that the pressure drop in a loop is equal to the actions of pumps in that loop. The conservation of mass is equivalent to conservation of charge, and to Kirchhoff’s second law: in the steady state, the mass of water entering a node must be equal to the mass ﬂowing out. Ohm’s law is equivalent to Poiseuille’s law in the pipes: a porous material in the pipes, or a constriction, is equivalent to a resistance. A material that expands when wet, like a sponge, will increase the resistance to the ﬂow as it absorbs the water. This is equivalent to a higher resistance which depends on the amount of water that ﬂowed thought the system, i.e., memristor-like. The sponge, however, does not have a polarity, while memristors do, depending on the physical mechanism which induces the switching. Other memristor-like systems can be built with other mechanical analogs [19,20], plants and potato tubes [21] or slime moulds [22,23] just to name a few. The modern history of memristors is tied to the work of Leon Chua. The ﬁrst time the word memristor (as an abbreviation for memory resistor) appeared was in the now celebrated Chua 1971 article [ 1]. During the 1960s, Leon Chua worked extensively on the mathematical foundations of nonlinear circuits. When he moved to Berkeley, where he currently is a Professor, he had already won several awards such as the IEEE ( Institute of Electrical and Electronics Engineers) Kirchhoff Award. The deﬁnition of memristor was made clearer in a second paper with his student at the time, Sung Mo Kang [ 3]. The second work was an important generalization of the notion of memristor and is the one we used in the present paper. Chua and Sung Mo Kang introduced the notion of “memristive device”: a resistance which depends on a state variable (or variables), which is sufﬁcient to describe the physical state (resistance) of the device at any time. The component deﬁned by Chua, and then by Chua and Sung Mo Kang, is a resistance whose value depends on some internal parameter, which in turn has to evolve dynamically according either to current or voltage. Implicitly, one needs to also deﬁne the relationship between the resistance and the state variable, which characterizes the device resistance. In the analogy with hydraulic computers, the state variable represents by the density of holes in the sponge as a function of time, while the resistance is the amount of traversable area. The 1976 and the 1971 papers were mostly mathematical and formal, without any connection to the physical properties of a real device. The 1976 paper also introduced the fact that, if one controls the device with a sinusoidal voltage, then one should observe Lissajous ﬁgures in the current–voltage (I–V) diagram of the device. It also established that any electronic component that displayed a pinched Technologies 2018 ,6, 118 5 of 43 hysteresis in the I–V diagram has to be a memristor. The eager reader will ﬁnd more details on the devices in the rest of the paper. For the 30 years after the work by Chua and Sung Mo Kang, the ﬁeld of memristors was basically non-existent. During the mid 2000s, Strukov, Williams and collaborators, working at Hewlett-Packard Labs (Palo Alto, CA, USA) were studying oxide materials and resistive switching. The physics of resistive switching has been known since the early 1970s, with the introduction of Phase-Change Materials. The physical origin of resistive switching was well studied, albeit not fully understood [24–26] . The idea that memristors could be experimentally realized became popular with the article of Strukov et al. at HP Labs. 3. Mathematical Models of Memristors In this section, we provide a general mathematical description of memristive systems followed by the details of the memristor model with linear memory dynamics proposed by Strukov et al. This is one of the simplest memristors models that captures the behaviors relevant for technological applications of memristive systems. The fundamental passive electric components are the resistors, capacitors and inductors. These components couple the voltage difference vapplied between their ports with the current iﬂowing through, with the following differential relationships: Resistor: d v=Rdi; Capacitor: d q=Cdv, charge: d q=idt; Inductor: d F=Ldv, ﬂux: d F=vdt.(1) These relations introduce the resistance R, the capacitance C, and the inductance L. The ideal memristor was initially and abstractly formulated as the ﬂux–charge relationship: dF=Mdq, (2) which, in order to be invertible, must have Mdeﬁned either in terms of F, or q, or it must be a constant. The latter case coincides with the resistor, while if Mis deﬁned in terms of F, then we have a voltage-controlled memristor, if it is deﬁned in terms of qit is a current-controlled memristor. For the sake of simplicity we do not make a difference between current-controlled and charge-controlled; this is an abuse of the language. The units of the coupling Mare Ohms, as can be seen by the units of the quantities it relates, which justiﬁes the notion of memristor at least as a nonlinear resistor. However, according to Chua, only nonlinear resistors showing a pinched hysteresis loop, i.e., V=0!I=0, are classiﬁed as memristors. An example is shown in Figure 2. Further classiﬁcations (ideal, extended, generic, see [ 2]) can be added to a device depending on other properties of the current–voltage (I–V) diagram that are observed experimentally when the device is controlled with a sinusoidal voltage at a certain frequency. For example, if for high frequencies the I–V becomes a straight line (recovery of pure linear resistance, no hysteresis), the device is a generic memristor, under Chua’s nomenclature. General memristors might be locally-active, showing regions where the resistance changes sign [27]. Many systems, not necessarily electronic ones, can fulﬁll these properties. Physical systems with memristor-like behavior are denominated memristive systems, and are described by the following non-autonomous (input-driven) dynamical system: dx dt=F(x,u), y=H(x,u)u,(3) where xis a vector of internal states, ya measured scalar quantity and ua scalar magnitude controlling the system. The pair (y,u)is usually voltage–current or current–voltage, hence the second equation is Technologies 2018 ,6, 118 6 of 43 simply Ohm’s law for the voltage–current relationship. In the ﬁrst case (current-controlled system), the function H(x,u)is the called memristance, and it is called memductance in the second case (voltage-controlled). The function H(x,u)is assumed to be continuous, bounded, and of constant sign. In order to rule out locally active devices, it is necessary to further require that H(x,u)is monotonic in u. This leads to the zero-crossing property or pinched hysteresis: u=0)y=0. The states xcan be many physical states other than charge, e.g., the internal temperature of a granular material. The minimum number of internal states on which H(x,u)depends is called the order of the memristive system. Figure 2. Pinched hysteresis loop of an ideal memristor. The parameters of the model are a=0, b= 0.3 mA ,Ron= 1 kWand Roff= 6 kW. The driving voltage is V(t) =sin(2pf t)with ftaking several values. We see that, for increasing frequencies, the hysteresis is reduced, eventually converging to a line (resistor). The loop slope (dashed lines) decreases with increasing frequency. The reader should not overlook the difference between an ideal memristor (a mathematical model), memristive systems (also a mathematical model), and a memristor (a physical device). Ideal memristors are models of devices in which the internal parameter controlling the resistance is the charge, which is linked to the ﬂux. Memristive systems generalize this behavior, and the internal parameters can be other physical quantities, or combination of physical quantities, even if they do not include ﬂux or charged particles. The latter is better attuned to many memristors, i.e., physical realizations of memristive behavior. Among the (large) class of memristive systems, the model proposed by Strukov et al. is appealing due to its simplicity. This model, shown in Equations (4)and (5), captures the basic properties of memristors that are relevant for the understanding of the device and for its technological applications. Equations (4)and (5)model the behavior of a current-controlled Titanium Dioxide memristor [ 28], also known as the HP-memristor: dw(t) dt=aw(t)1 bI(t), (4) V(t) I(t)=R(w(t)):=Ron[1w(t)]+Roffw(t), (5) w(0) =w0!R(w0) =R0, 0w(t)1, (6) where I(t)is the current ﬂowing in the device at time t. The quantities RonRoffin the parametrization of the resistance Rin terms of the adimensional variable w(t)(called memory ), deﬁne the two limiting resistances. The parameters a(with units s1) and b(with units s1A1), deﬁne the dynamic properties of the memristor. The parameter a0, sometimes called volatility , indicates how fast the resistance drifts towards Roffin the absence of currents [ 29]. Since the resistance function depends on a single state w, this is a ﬁrst order memristive system. Although this model has several drawbacks when Technologies 2018 ,6, 118 7 of 43 it comes to its connection to the physical behavior of ion migration in the conductor [ 6,17,19,30–32], it will be the reference for most derivations and discussions in this article, as it captures several key properties of a generic memristor. We begin with the case with a=0, i.e., a non-volatile memristor. We solve the system of equations above using a zero mean small amplitude driving voltage V(t)which is such that, for all times 0<w(t)<1, i.e., the memristor should not saturate at any time [33]: R(w(t))dw(t) dt=d dt (RoffRon)1 2w2(t) +Ronw(t) =V(t), (7) from which we derive, if we deﬁne x=RoffRon Ronand integrate over time: x 2w2(t) +w(t) =x 2w2(t0) +w(t0) +Zt 0V(t)dt, (8) whose solution is given by w(t) =r 2 x 2w2(t0) +w(t0) +Rt 0V(t)dt x+11 x. (9) This equation fulﬁlls the fundamental property of a memristor: it has the zero crossing property (pinched hysteresis loop). Furthermore, it shows properties of generic memristors: the loop tilts to the right for driving signals with increasing frequencies, becoming a straight line for sufﬁciently high frequencies. To see the latter, consider V(t) = V0cos(wt), as the frequency w!¥. For this voltage, the integral in Equation (8)goes to 0, and w(t)!w(t0). This implies a constant resistance, i.e., the memristor becomes a resistor for high frequencies. In this model for a=0, we have that w(t)q(t), where q(t)is the charge in the conductor. For a titanium dioxide thin ﬁlm, it was shown in [28] that b1meRon D, (10) and thus R(q)Roff 1meRon D2q , (11) where meis the electron mobility in the ﬁlm, Roffis the resistance of the undoped material (for instance titanium oxides,100W), and Dis a characteristic length of the ﬁlm. From the micrometer to the nanometer, the value of bgrows by a factor of 106, which is why the memristance in this material is a nanoscale effect. Memristors are also referred to as resistive switches, because whenRoff Ron 1and bis small enough, the memristor can be quickly driven from one state to the other via a current (or voltage) inversion. The operation is often referred to a SET orRESET in the technical literature, depending on the operation one is interested in, and it allows the use of non-volatile memristors as bits. In the volatile case, i.e., a>0, the memristor does not retain its memory state. When a volatile memristor is not activated via an external forcing, the memristor drifts to its insulating state, R(t=¥) =Roff.That is, if I(t) =0, then the internal memory is simply given by w(t) =w0eat, where w0is the initial condition. This behavior was ﬁrst experimentally observed in [ 34]. Volatility is discussed again in Section 5.4. Following the distinction between memristive and memristors we have discussed, when a6=0, the parameter wcannot be uniquely identiﬁed with the charge, hence the model does not correspond to a bona ﬁde memristor. In fact, for a single component the solution of: dw(t) dt=aw(t)1 bdq(t) dt(12) Technologies 2018 ,6, 118 8 of 43 is given by w(t) =eat bZt 1eatd dtq(t)dt+w0eat, (13) which is a composite function that includes the charge. The numerical model of the memristor allows us to study their theoretical capabilities as well as simulating large networks of these devices. From the point of view of numerical simulations, the dynamics at the boundaries of wneed to be stable, or alternatively, wbe constrained in [0, 1]. In general, the latter does not scale well in terms of runtime, and for this reason it is often useful to bound the internal states of the memristor model via the introduction of window functions [ 28,35–40]. Since we are not aware of any systematic validations of windowing functions with real devices, we believe they should be considered tricks useful for large simulations. It is common to use windowing techniques based on polynomials; for an extensive review, we refer the reader to [ 38]. Polynomial windowing functions that reproduce nonlinear dopants drift can be introduced via the so-called Joglekar window function F(x)[36,40], such that F(1) =F(0) =0, which generalizes the evolution of w(t)as dw(t) dt=aw(t)F(w)1 bI(t), (14) where the window function can take the form F(w) = 1(2w1)2p, with pa positive integer. Depending on the type of memristor model, different window functions might provide a better approximation of the nonlinear effects near the boundaries of the memory. For an overview of the various physical mechanisms that can be involved, we refer the reader to Appendix A. Numerical simulations of memristive networks can be achieved with different methods. Efﬁcient ones include the SPICE methodology [ 41,42] and the more recent Flux-Charge method [ 43]. Furthermore, general solvers for Differential-algebraic system of equations (e.g., SUNDIALS solvers [ 44]) can also be used for networks with a few hundred components, without major loss of performance. For some networks (without capacitance or inductance), it is possible to derive a monolithic system of ordinary differential equations for the evolution of the network states, which already include the nonlocal algebraic constraints imposed by Kirchhoff’s laws [45,46]. The choice of the method is largely based on the questions to be addressed by the simulations, which often results in a trade-off between generality of the solver (e.g., ﬂexible memristor model) and performance. 4. Memristors for Storage A memristor can be used as a digital memory of at least one bit. The simplest way to achieve this is to use the memristor as a switch. If the memristor is non-volatile, we can set its memristance to the value RonorRoffusing a voltage or current pulse, and associate these resistances with the state of a bit. We stress that non-volatility is essential for memory applications because a volatile memristor, i.e., one that drifts back to a high resistance state autonomously, would require a permanent source of current/voltage to keep it in the low resistance state. Volatility will, in general, render memristive memory worthless in terms of energy consumption. This is one of the reasons why volatility is engineered out of the devices meant for storage applications. In order to illustrate the mechanism of ﬂipping a bit, consider again the non-volatile memristor model described by Equation (4)(i.e., a=0) connected to a constant voltage source Vwrite. Solving the differential equation for w(t)gives: w(t) =p a+bVwritet, (15) Technologies 2018 ,6, 118 9 of 43 where the coefﬁcients a,bdepend on the parameters, but not on the input voltage. Thus, by controlling the sign of the input voltage Vwrite,we can switch the resistance from RofftoRonand vice versa (the ﬂip of a bit). The switching happens within a characteristic time t: p a+bVwritet=1!t1 bVwrite. (16) Hence, to ﬂip the bit, we need to apply Vwrite for at least this amount of time. To read the bit, we apply a voltage Vread Vwrite (and optionally for period of time shorter than t) and compute the resistance via the measurement of the resulting current. Equation (15)applies only to the idealized memristor described by the model in Equations (4) and (5). This model might not be valid for real devices which will show a different dynamic response to input voltages or currents. However, the idea of controlling and reading a memristor bit with pulsed inputs remains the same. Figure 3 shows the response of a real TiO 2memristor to write voltages (SET and RESET). Figure 3. RESET and SET for TiO 2with pulse within the hundred of microseconds, reproduced with permission from [ 47]. The subﬁgure ( a) is the evolution of resistance as a function of the voltage, which is shown in subﬁgure ( b). The fact that it is possible to write and read the state via signal pulses allows for advantageous scaling of power consumption and bit density (see [ 48] for details). As we discuss below, it is possible to use crossbar arrays with memristors to increase the density of components. The density of components in crossbar arrays scales as1 4`2, where `is set by the length scale of optical lithography (a few nanometers). The reported state of the art as we write this article is roughly 7 GB/mm2, and with writing currents of 0.1 nA [49]. Another challenge for storage based applications, besides volatility, is device variability, e.g., the variation of properties like the switching time tfor devices built under similar conditions. Current research in oxides focuses on these variability aspects, how to standardize the production of memristors, and the optimization of properties like the switching and retention time, and the durability of each singular device. The status of the technology for memory storage for different type of devices is presented in Table 1. Technologies 2018 ,6, 118 10 of 43 Table 1. Characteristics of various storage devices (for details see [ 50]). The table compares to memristor technology to competitors like Phase-Change Materials (PCM) and more standard devices based on Spin-Transfer Torque (STT), dynamic random-access memory (DRam), Flash and hard disk (HD). Memristor PCM STT-RAM DRAM Flash HD Chip area per bit ( F2) 4 10 14–64 6–8 4–8 n/a Energy per bit (pJ) 0.1–3 101–20.1–1 100103104 Read time (ns) <10 20–70 10–30 10–50 104–5104 Write time (ns) 20–30 101–2101–2101105106 Retention (years) 10 10 10110510 10 Cycles endurance 1012107–810151017105–81015 3D capability yes no no no yes n/a 4.1. Crossbar Arrays In this section, we brieﬂy review the crossbar array architecture used in memristor based storage and its application in artiﬁcial neural networks. Crossbar arrays are based on the architecture depicted in Figure 4. The ﬁgure shows an array composed of horizontal (e-lines) and vertical (b-lines) lines that are initially electrically isolated from each other. A 2-terminal component, e.g., a memristor, is connected across each pair of vertical and horizontal lines. Figure 4. Learning matrix, introduced by Steinbuch [51], reproduced with permission from [52]. In order to operate crossbar arrays, a voltage xjis applied to the j-th e-line, and an another voltage hito the i-th b-line. A memristance Mj,i, placed across j-th e-line and the i-th b-line, is controlled by the voltage xjhi. This arrangement allows for simple indexing of the memristances, and is the mechanism behind a Content-Addressable-Memory (CAM), which is used in crossbar arrays. The idea of this construction dates back to Steinbuch’s “Die Lernmatrix” (the learning matrix) [51,53]. Crossbar arrays can be used for matrix-vector multiplication using the voltages xj as inputs and the voltages hi as outputs. For a resistance independent of the input voltage or current, the relation between them is given by ~h=A~x, where the elements of the matrix Aare: Aij=M1 ij ˜R1 i+ås=1M1 is. (17) ˜Riare the resistances on the output b-lines ~h, and Mijis the memristance of the memristor between thei-th b-line and j-th e-line. An algorithm for setting the (mem)resistances given a matrix can be found in [ 54]. To apply this method with memristors, the voltages differences need to be small/short, Technologies 2018 ,6, 118 11 of 43 to avoid changing their memristance, or all memristors need to be in one of their limiting states Ron orRoff. The component density of crossbar arrays can be increased by stacking various layers of crossbar arrays on top of each other [ 55,56]. The stacking of Lcrossbar layers scales the density of components by a factor L, i.e., a theoretical scaling ofL 4`2. In multilayered arrays, memristors are controlled using the corresponding horizontal and vertical lines of each layer. Memristive crossbar arrays can be used to encode the synaptic weights of feed-forward or recurrent artiﬁcial neural networks (ANNs) [ 57]. In ANNs, the input to neurons in a given layer (post-synaptic) is computed as the multiplication of the outputs of neurons in the previous layer (pre-synaptic) and the matrix of synaptic weights connecting the two layers (Figure 5). Then, the multiplication is carried over using the multiplication algorithm previously described. The output of pre-synaptic neurons is encoded in the voltages of e-lines of the crossbar array, and the input to post-synaptic neurons is decoded from the currents on the b-lines. Applications go beyond this direct implementation of the multiplication algorithm. For example, in [ 57], the synaptic weights are encoded as the difference of the conductance between two memristors. Similar ideas have been exploited to design other computational models based on stateful logic [ 58] and differential pair synapses (called “kT-RAM”) [59]. Figure 5. Memristors used for synaptic weights in artiﬁcial neural networks (ANNs), reproduced with permission from Figure 2 of [ 57]. Subﬁgure ( a): memristive neural network. In Subﬁgure ( b) we introduce the crossbar implementation of the memory using memristors. The potential beneﬁts of utilizing memristor based ANNs are speed and energy efﬁciency. The computation and storage use the same location in the network, and analog inputs are directly fed to the neurons. This architecture minimizes the reading-writing costs incurred by the conventional von Neumann architecture, and potentially the energy losses of analog-to-digital conversion. 4.2. Synaptic Plasticity Synaptic plasticity can be broadly deﬁned as the modiﬁcation of the synaptic conductance as a function of the activity of the neurons connected to it. This deﬁnition rules out autonomous plasticity, which is the slow synaptic conductance decay of inactive synapses (volatility). Autonomous plasticity is fundamental for data processing applications and will be considered in Section 5. Non-autonomous synaptic plasticity can be classiﬁed in several types, e.g., spike-rate-dependent, spike-timing-dependent, short-term, long-term, etc. In the study of synaptic plasticity of the human cortex, Hebbian or Anti-Hebbian (related to the simultaneous ﬁring of two neurons) [ 52,60,61] are often the underpinning learning mechanisms. Our aim here is not to describe the types of plasticity, their biological origin, or how difﬁcult it is to isolate each class in biological and experimental systems. Our intention is but to illustrate how memristors, used as memories, can be used to implement the change in weights based on pre- and/or post-synaptic activity. Technologies 2018 ,6, 118 12 of 43 For an overview of the different types of synaptic plasticity and