Design of Sequential Stochastic Computing Systems
Add to Google Calendar
Stochastic computing (SC) is an unconventional technique that has recently re-emerged as an attractive design alternative to the conventional binary computing (BC). SC represents data using probabilistic bit-streams, whose value is associated with their frequency of 1s and 0s. Such a highly unusual data format allows some key arithmetic operations to be implemented with extremely simple circuits, hinting at low power and small area. These SC features show great promises in tasks like image processing and machine learning. However, SC's inherently random nature also presents several design challenges such as long latency and errors induced by random fluctuation and correlation. These issues have limited the use of SC to applications that can tolerate errors and only require low precision. Our research begins by investigating SC's major error sources. We observe that constant SC signals are a major contributor to random fluctuation. We thus devise a sequential method to optimally remove them. We also propose a novel isolation method that eliminates correlation errors by delay insertion. Noting that both of the foregoing error-elimination methods use sequential elements, we next study the overall role of sequential components in SC. We identify two new classes of sequential stochastic circuits, and analyze their properties in depth. This leads to an optimization method that exploits stochastically equivalent state-transitions in sequential circuits. Many SC systems are a hybrid of BC and SC features. Connecting BC and SC elements introduces considerable hardware and latency overhead. We thus propose a new hybrid architecture that can replace some of such interfaces without introducing latency more than necessarily. Finally, we explore a new opportunity enabled by SC-style randomness. We further propose a sequential element that can inject a precise amount of randomness into SC computation, which in turn benefits applications such as image dithering and neural-network hardening.