Design of accurate stochastic number generators with noisy emerging devices for stochastic computing

Stochastic computing (SC) is an unconventional computing paradigm that operates on stochastic bit streams. It has gained attention recently because of the very low area and power needs of its computing core. SC relies on stochastic number generators (SNGs) to map input binary numbers to stochastic bit streams. A conventional SNG comprises a random number source (RNS), typically an LFSR, and a comparator. It needs far more area and power than the SC core, offsetting the latter's main advantages. To mitigate this problem, SNGs employing emerging nanoscale devices such as memristors and spintronic devices have been proposed. However, these devices tend to have large errors in their output probabilities due to unpredictable variations in their fabrication processes and noise in their control signals. We present a novel method of exploiting such devices to design a highly accurate SNG. It is built around an RNS that generates uniformly distributed random numbers under ideal (nominal) conditions. It also has a novel error-cancelling probability conversion circuit (ECPCC) that guarantees very high accuracy in the output probability under realistic conditions when the RNS is subject to errors. An ECPCC can also be used to generate maximally correlated stochastic streams, a useful property for some applications.

[1]  Vincent C. Gaudet,et al.  Iterative decoding using stochastic computation , 2003 .

[2]  Zhengya Zhang,et al.  A Native Stochastic Computing Architecture Enabled by Memristors , 2014, IEEE Transactions on Nanotechnology.

[3]  Marc D. Riedel,et al.  A deterministic approach to stochastic computation , 2016, 2016 IEEE/ACM International Conference on Computer-Aided Design (ICCAD).

[4]  A. Drago Anti-dual logical functions , 1965 .

[5]  Kang L. Wang,et al.  Design of high-throughput and low-power true random number generator utilizing perpendicularly magnetized voltage-controlled magnetic tunnel junction , 2017 .

[6]  Brian R. Gaines,et al.  Stochastic computing , 1967, AFIPS '67 (Spring).

[7]  Miao Hu,et al.  A Novel True Random Number Generator Design Leveraging Emerging Memristor Technology , 2015, ACM Great Lakes Symposium on VLSI.

[8]  Shawn D. Newsam,et al.  Bag-of-visual-words and spatial extensions for land-use classification , 2010, GIS '10.

[9]  P. Vontobel,et al.  Writing to and reading from a nano-scale crossbar memory based on memristors , 2009, Nanotechnology.

[10]  Howard C. Card,et al.  Stochastic Neural Computation I: Computational Elements , 2001, IEEE Trans. Computers.

[11]  Ramdas Kumaresan,et al.  Binary multiplication with PN sequences , 1988, IEEE Trans. Acoust. Speech Signal Process..

[12]  Kaushik Roy,et al.  Spintastic: Spin-based stochastic logic for energy-efficient computing , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[13]  John P. Hayes,et al.  Exploiting correlation in stochastic circuit design , 2013, 2013 IEEE 31st International Conference on Computer Design (ICCD).

[14]  David J. Lilja,et al.  Using Stochastic Computing to Reduce the Hardware Requirements for a Restricted Boltzmann Machine Classifier , 2016, FPGA.

[15]  Marc D. Riedel,et al.  Two-Level Logic Synthesis for Probabilistic Computation , 2010 .

[16]  Tsuyoshi Iwagaki,et al.  Compact and accurate stochastic circuits with shared random number sources , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).

[17]  John P. Hayes,et al.  Stochastic circuits for real-time image-processing applications , 2013, 2013 50th ACM/EDAC/IEEE Design Automation Conference (DAC).

[18]  A.P. Chandrakasan,et al.  Static noise margin variation for sub-threshold SRAM in 65-nm CMOS , 2006, IEEE Journal of Solid-State Circuits.

[19]  Kia Bazargan,et al.  Computation on Stochastic Bit Streams Digital Image Processing Case Studies , 2014, IEEE Transactions on Very Large Scale Integration (VLSI) Systems.

[20]  John P. Hayes,et al.  Analyzing and controlling accuracy in stochastic circuits , 2014, 2014 IEEE 32nd International Conference on Computer Design (ICCD).