Digital yet deliberately random: synthesizing logical computation on stochastic bit streams

Most digital circuits process information that is encoded as zeros and ones deterministically. For example, the arithmetic unit of a modern computer performs calculations on deterministic integer or floating-point values represented in binary radix. However, digital computation need not be deterministic. In this dissertation, we consider an alternative paradigm: digital circuits that compute on stochastic sequences of zeros and ones. Such circuits can implement complex arithmetic operations with very simple hardware. For instance, multiplication can be performed with a single AND gate. Also they are highly tolerant of soft errors (i.e., bit flips). In the first part of the dissertation, we present a general method for synthesizing digital circuitry that computes on stochastic bit streams. Our method can be used to synthesize arbitrary polynomial functions. Through polynomial approximations, it can also be used to synthesize non-polynomial functions. Experiments on polynomial functions and functions used in image processing show that our method produces circuits that are highly tolerant of soft errors. The accuracy degrades gracefully with the error rate. For applications that mandate simple hardware, producing relatively low precision computation very reliably, our method is a winning proposition. A premise for the stochastic paradigm is the availability of stochastic bit streams with the requisite probabilities. Physical random sources can be exploited to generate such random bit streams. Generally, each source has a fixed bias and so provides bits that have a specific probability of being one versus zero. If many different probability values are required, it can be difficult or expensive to generate all of these directly from physical sources. In the second part of the dissertation, we demonstrate novel techniques for synthesizing combinational logic that transforms a set of source probabilities into different target probabilities. We consider three scenarios in terms of whether the source probabilities are specified and whether they can be duplicated. We present solutions to all of these three scenarios. In the final part of the dissertation, we consider optimizing the circuits that compute on stochastic bit streams. We focus on a fundamental problem pertaining to generating probabilities: how to synthesize optimal two-level logic circuits to generate arbitrary probability values from unbiased input probability values of 0.5? This motivates a novel logic synthesis problem: find a Boolean function with exactly a given number of minterms and having a sum-of-product expression with the minimum number of products. A crucial step towards solving the problem is to determine whether there exists a set of cubes to satisfy a given intersection pattern of these cubes and, if it exists, to synthesize a set of cubes. We show a necessary and sufficient condition for the existence of a set of cubes to satisfy a given intersection pattern. We also show that the synthesis problem can be reduced to the problem of finding a non-negative solution to a set of linear equalities and inequalities. ^