The continuing ability of manufacturers to produce smaller devices with each technology generation has enabled the exponentially increasing circuit density and capability that has driven technological innovation for decades. However, compounding static and dynamic non-determinism resulting from the manufacturing challenges that accompany technology scaling has resulted in uncertainty in performance, power, and reliability that threaten the continuation of Moore's law.
This situation is exacerbated by emerging computing applications, which exert considerable power and performance pressure on processors. Paradoxically, the problem is not non-determinism, per se, but rather the approaches that designers have used to deal with it. As variability in circuit behavior increases, traditional approaches that aim to enforce deterministic behavior on a non-deterministic substrate become increasingly costly. Clearly, status quo cannot continue. In response to these challenges, stochastic computing techniques that exploit error resilience and enable energy-reliability tradeoffs have been proposed at nearly all levels of the computing stack, including stochastic design optimizations, architecture frameworks, compiler optimizations, application transformations, programming language support, and testing techniques. Though researchers have made inroads in these areas, the landscape is still ripe for exploration.
This book reviews work in the area of stochastic computing and discuss the promise and challenges of the field.