Grants and Contributions:
Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023)
High-performance microelectronic circuit design practices often focus on competing dimensions of cost, throughput, and energy consumption. The push is often towards higher precision, and design decisions are driven by worst-case analysis. However, this approach can lead to over-engineered systems that have a greater energy cost that what is fundamentally needed by the target application.
Stochastic computing is a technique that traces its history back to work done by Von Neumann in the 1950s, and that counter-intuitively uses randomness to the benefit of computation, possibly leading to lower hardware cost and power consumption. Many fundamental results were reported in the 1960s, e.g., multiplication using single AND gates. Stochastic computations are performed in the time domain using streams of randomly generated symbols, where the quantity of interest is the time average of a binary sequence. In the 1970s, progress in integrated circuit technologies alleviated the need to reduce transistor count. Consequently, research into stochastic computing effectively halted from the mid-1970s until the 1990s. However, there is now a renaissance in stochastic computing, and it has become an effective technique for forward error control. Several multi-Gigabit-per-second decoders have been reported in the literature. Stochastic computation’s fault tolerance also makes in an attractive option for novel nanoscale technologies.
Despite these advances, there are obstacles towards wider adoption of stochastic computing:
(1) Stochastic computing represents quantities using time averages of random sequences of bits. Generating these sequences and maintaining desired properties of independence is costly.
(2) Long sequences in the thousands of symbols are often required to reach desired levels of accuracy. This either leads to long latencies or to extremely high clock speed requirements. Furthermore, there may be high switching activity (and power consumption).
(3) Because of their random nature, stochastic computing systems do not have absolute guarantees on performance and/or accuracy; this can be a stumbling block in some sensitive applications (e.g., in the biomedical sector).
Through the proposed research program, the applicant and his team will work towards addressing these three challenges, and will apply the results to design efficient hardware for emerging applications in signal processing and machine learning.