@article {reddi2010eliminating,
	title = {Eliminating Voltage Emergencies via Software-Guided Code Transformations},
	journal = {ACM Transactions on Architecture and Code Optimization (TACO)},
	volume = {7},
	number = {2},
	year = {2010},
	pages = {12},
	publisher = {ACM},
	abstract = {In recent years, circuit reliability in modern high-performance processors has become increasingly important. Shrinking feature sizes and diminishing supply voltages have made circuits more sensitive to microprocessor supply voltage fluctuations. These fluctuations result from the natural variation of processor activity as workloads execute, but when left unattended, these voltage fluctuations can lead to timing violations or even transistor lifetime issues. In this paper, we present a hardware-software collaborative approach to mitigate voltage fluctuations. A checkpoint-recovery mechanism rectifies errors when voltage violates maximum tolerance settings, while a run-time software layer reschedules the program{\textquoteright}s instruction stream to prevent recurring violations at the same program location. The run-time layer, combined with the proposed code rescheduling algorithm, removes 60\% of all violations with minimal overhead, thereby significantly improving overall performance. Our solution is a radical departure from the ongoing industry standard approach to circumvent the issue altogether by optimizing for the worst case voltage flux, which compromises power and performance efficiency severely, especially looking ahead to future technology generations. Existing conservative approaches will have severe implications on the ability to deliver efficient microprocessors. The proposed technique reassembles a traditional reliability problem as a runtime performance optimization problem, thus allowing us to design processors for typical case operation by building intelligent algorithms that can prevent recurring violations.Categories and Subject Descriptors: B.8.1 [Performance and Reliability]: Reliability, Testing, and Fault-ToleranceGeneral Terms: Performance, ReliabilityAdditional Key Words and Phrases: Voltage Noise, dI/dt, Inductive Noise, Voltage Emergencies},
	url = {https://doi.org/10.1145/1839667.1839674},
	author = {Reddi, Vijay Janapa and Campanoni, Simone and Gupta, Meeta S and Smith, Michael D and Gu-Yeon Wei and David Brooks and Hazelwood, Kim}
}
