Most digital systems operate on a positional representation of data, such as binary radix. This project advocates an alternative representation: random bit streams where the signal value is encoded by the probability of obtaining a one versus a zero. This representation is much less compact than binary radix. However, complex operations can be performed with very simple logic. In particular, arithmetic functions, consisting of operations like addition and multiplication can be implemented very efficiently. Complex functions, such as exponentials and trigonometric functions, can be computed through polynomial approximations. Because a stochastic representation is uniform, with all bits weighted equally, it is highly tolerant of soft errors (i.e., bit flips). Computation on stochastic bit streams offers tunable precision: as the length of the stochastic bit stream increases, the precision of the value represented by it also increases. Thus, without hardware redesign, one has the flexibility to tradeoff precision and computation time. In contrast, with a conventional binary-radix implementation, when a higher precision is required, the underlying hardware has to be redesigned. This project will develop and apply a unified framework for synthesizing such computation from the circuit level to the architectural and system level. Techniques for transforming probability values with combinational logic will be developed.
As part of this grant, a new course on "Circuits, Computation, and Biology" offered jointly through the ECE Department and the new Biomedical Informatics and Computational Biology Program at the University of Minnesota. The researchers will try to incorporate stochastic ideas in computer design curriculum, The PIs will focus on building upon current research efforts that include female and underrepresented students.