Chapter 1
Introduction
] in 1971. Memristors, or memristive devices, are nonvolatile circuit components that have a nonlinear relationship between electric charge and magnetic flux. These devices were hypothesized as the missing fourth circuit element, joining the long-standing resistor, inductor, and capacitor.
Since their original introduction, research has focused on developing and formulating memristive devices, which exhibit this nonlinear relationship. Beyond fundamental fabrication, research has pushed to create memristors with characteristics competitive with traditional complementary metal oxide semiconductor (CMOS) circuit components. These memristive devices have progressed to possess smaller form factor and faster switching times than current CMOS equivalents [].
Orthogonally, research has explored various models and their applications for memristive devices []. Memristive devices encompass a wide range of different physical devices, each exhibiting distinct physical and behavioral characteristics. Thus, numerous models are needed to represent this range of devices and their unique properties. Since memristive devices are still a new concept, it is left to research to determine how exactly to represent these devices with models, and which devices are unique and useful enough to warrant a model. The research field surrounding device modeling for memristors enables many others in the field of memristor research to explore the applications and analysis of memristors and memristor-based designs.
Research into memristor applications attempts to answer the question, how will memristive devices be used rather than how will memristive devices be made? The answer to this question will solidify the longevity and practicality of memristors in the computer architecture field. Without this answer, it is unclear if memristors will be widely accepted as a front-runner of future technologies. Currently, the applications for memristors fall into two categories, memory and logic.
An important benefit of memristors is the ability to hold data with low area and high density as compared to alternative memory solutions. Thus, the majority of research in memristors has focused on their application to memory [] in a serialized manner to execute a logically complete set of Boolean functions.
The idea that memristors can perform logic drastically increased the design space for memristors. Nearly every component and logic block in a system is now a potential candidate for a memristor-based design.
Since this finding, researchers have begun to explore arithmetic applications for memristors [].
This area of research is still in its infancy. Much, if not all, of the preliminary work that has been done has focused on individual logic gates and small circuits such as adders. These works serve an important role as a proof-on-concept for the strengths of memristor-based logic design. However, additional strides are needed to produce larger arithmetic units that are useful in modern, complex system.
This text is focused on that next step, exploring the design of practical, complex, real-world arithmetic units using memristor-based logic. In this work, four distinct approaches to memristor-based arithmetic unit design are proposed and described that extend and optimize upon the current state-of-the-art designs. The four approaches are IMPLY, hybrid-CMOS, threshold gates, and MAD (memristors-as-drivers) gates. These four approaches were selected because each has a unique set of properties in terms of cost and benefit.
As a set, these four approaches represent a wide spectrum of trade-offs in system design, from performance- to area-critical. For a given application, one or more of these approaches may prove to be the most beneficial, while others may have shortcomings. One goal of this text is to highlight the insight behind when memristor-based logic is appropriate and what approaches should be used in different system scenarios.
Implementations of numerous arithmetic units, including adders, multipliers, and dividers, are presented for each of these approaches. Specifically, the adders studied are a ripple-carry adder, a carry-lookahead adder, a carry-select adder, and a conditional-sum adder. The multipliers studied are a shift-and-add multiplier, a Booth multiplier, an array multiplier, and a Dadda multiplier. The dividers studied are a binary restoring divider, an SRT divider, and a Goldschmidt divider. These designs were selected on the basis of their proclivity to memristor optimizations as well as an encapsulation of a wide range of design trade-offs. It is also shown how the MAD gates can be incorporated into a crossbar structure, similar to the IMPLY circuit.
For each arithmetic unit, optimizations are performed on each of the four distinct implementations. In many cases, the traditional CMOS circuitry for the arithmetic unit has been transformed to accommodate memristors and their properties. The ideal or optimized circuitry for a CMOS design may not be the ideal, optimized circuitry for a memristor-based design. These differences are emphasized in this text.
Additionally, some memristor-based designs can be pipelined with minimal to no changes to the circuitry. In these cases, the circuitry has been modified as necessary to allow for pipelining, a key benefit of some memristor-based logic approaches.
Each design is analyzed in terms of delay and complexity and compared against the other memristor-based approaches. The memristor-based designs are also compared against the equivalent CMOS design. These comparisons provide insight into the strengths and consequences of both CMOS and memristor-based design and motivate the designer to use a critical eye when deciding the approach device and approach for a given design. Some of the implementations discussed have prior state-of-the-art in the literature. For these cases, the implementations of the previous literature are compared with the designs presented in this text. The comparison is done in terms of performance, measured in terms of both delay and component costs.
This text presents prior work in this field, the proposed arithmetic designs, and results and suggestions for future work. Chapter 2 describes prior work on memristor-based arithmetic implementations via IMPLY operations, hybrid-CMOS gates, threshold gates, and others. Chapter 3 introduces various adder arithmetic units, including ripple-carry adders and carry-lookahead adders. These units are described at a high level, abstracted away from the underlying CMOS or memristor technologies. Chapter 4 introduces multiple popular multiplier arithmetic units, describing the designs in a similar manner as Chapter 3. Chapter 5 completes the set by discussing common divider arithmetic units. Chapters 68 are dedicated to memristor-based arithmetic designs. Chapter 6 focuses on adder arithmetic units, implementing each adder given in Chapter 3 for the arithmetic approaches explained in Chapter 2. Chapters 7 and 8 follow a similar pattern, implementing the multiplier and divider arithmetic units using the various arithmetic approaches outlined in Chapter 2. Chapter 9 serves to motivate the reader for possible future directions for exploration, research, and applications in the field of memristors. Finally, Chapter 10 concludes the text.
1.1 Memristor fundamentals
Memristors were suggested by Chua [] in 1971 as a two-terminal device with properties that complement the other fundamental electronic components: the capacitor, inductor, and resistor.
The capacitor relates charge to voltage ( ), the resistor relates voltage and current (