6. EL ÁMBITO ESPAÑOL
6.5. La corriente del compromiso
Inherent Application Resilience
Although significant performance and power benefits can be achieved from BTWC design, its major problem is the extra cost, such as silicon area, additional clock cycles and power consumption, introduced by implementing the checker circuits for error detection and recovery. Instead, studies have shown that for a large volume of existing and emerging applications, errors can be potentially tolerated [20]. This feature is also referred to as “inherent application resilience”. For these applications, acceptable results can still be generated despite the existence of portions of the application that are computed incorrectly or approximately.
In general, inherent application resilience originates from three main sources, as listed below:
1. Redundant and noisy input data. Applications processing real-world data are designed to be robust to noise. For instance in medical applications such as elec-troencephalogram (EEG) and visual evoked potential (VEP) that detect and process biomedical signals, data sampled from sensors are inevitably contam-inated by environmental noise, which will in turn become an important factor that determines the quality of successive computations and final results. In order to achieve noise robustness, data redundancy is normally utilised. On the other hand, the redundancy and noise of input data could potentially form resilience to approximations, as it is not necessary to perform fully accurate computations with noisy data in the first place at the cost of expensive computational efforts.
2. Algorithmic resilience. Probabilistic algorithms typically take stochastic inputs and generate outputs with non-deterministic behaviour in terms of correctness and time of operation. Normally a range of outputs can be generated but are
treated equally acceptable. This type of algorithm uses randomness to achieve more efficient computations in comparison to their deterministic competitors.
For example, several probabilistic algorithms, such as K-means clustering, it-eratively converge to the final solution by sequentially producing approximate answers. In addition, algorithms such as quicksort and simulated annealing em-body randomness within the algorithm. The intrinsic algorithmic resilience can remove the necessity for accurate computation to a large extent.
3. Perceptual resilience. If the end user of an application is human, it may em-body inherent application resilience because of the limited sensitivities of human perceptions. In this case, minor fluctuations of outputs can hardly be recog-nised and/or distinguished by human senses. For example, human hearing can only perceive sounds with frequency range from about 20Hz to 20kHz, and hu-man visual perception systems will unconsciously fill in missing information from images or videos and filter out high frequency patterns. Consequently for appli-cations involving human perception, ensuring 100% computation accuracy can be expensive and unnecessary.
Current Research
Inspired by the existence of inherent application resilience, a novel design concept
“unreliable computing with unreliable components” has been proposed and studied over the past few years [93, 94, 95]. Instead of maintaining absolutely correct and reliable computational results, it is more beneficial in terms of performance and energy to only provide “good enough” results that meet given design specifications. This design strategy is particularly interesting and beneficial to applications with inherent error resilience, such as multimedia [4, 106], digital signal processing (DSP) [77, 1], machine learning [14, 21, 19] and so on. In comparison to BTWC design, another
advantage of this design approach is that the checker circuit can be eliminated to reduce extra costs.
Current research in this area mainly focuses on designing probabilistic or imprecise circuits at different levels of the Very-Large-Scale Integration (VLSI) design flow, such as software and algorithm level [60, 78, 100], architecture and circuit level [59] and even transistor level [17, 18, 96]. For instance at the programming language level, a tool was proposed [37, 105] to divide variables and objects in a program into pre-cise parts and approximate parts, which can be mapped to different hardware with different speed-grades, supply voltages, etc., respectively. For instance, approximate data can be processed less reliably, whereas the error sensitive part of the program should be operated with guarantees of correctness. This technique enabled a rela-tively high service quality, in the meantime energy reduction can be obtained due to approximation. It demonstrated up to 50% of energy saving can be achieved. Another study [139] proposed a design framework that allowed circuit designers to explicitly define the approximate portion of the entire system at Hardware Description Lan-guage (HDL) level. The design abstractions were presented as extensions to Verilog HDL through high-level annotations. This framework enabled design and reuse of approximate hardware building blocks.
Similar ideas have also been applied on hardware directly. As an example, a non-uniform voltage scaling technique is proposed for the ripple carry adder [65]. In this study, multiple voltage regions are employed for different bits along a carry chain.
That is, higher voltage would be applied for computations generating most significant bits, and vice versa. There is also research developing probabilistic CMOS transistors which modelled the relationship between energy consumption and the probability of correct transistor switching [18].
Another main stream of research focuses on designing approximate logic and
impre-cise arithmetic circuits by mainly simplifying original structure to trade for perfor-mance and energy efficiency. For instance, Lu et al. proposed a “shrinking” datapath that can be utilised to mimic and speculate the original logic functions [80]. Kulka-rni et al. described an under-designed 2×2 multiplier unit, of which the worst case was replaced by a normal case based on the straightforward Karnaugh-Map analysis [71].
In both cases, reduction of area and power consumption can be achieved with the cost of accuracy.
In addition, a large volume of current work is targeting approximate adder design.
For example, Gupta et al. developed approximate adders at the transistor level and compared the energy efficiency of their proposed architectures over truncation of in-put word-length of conventional structures [46]. Based on the observation that the accuracy demands for different applications might vary, Kahng et al. proposed an adder architecture which offered the flexibility to trade accuracy for energy benefits by optionally utilising part of the adder or enabling additional circuitry to correct for errors for high accuracy requirements [61]. Ye et al. derived the relationship between achievable quality and computational effort for a reconfigurable adder, which can be tuned based on the quality-effort curve to achieve better trade-offs [140].