Abstract
Modern microprocessors incorporate a variety of architectural features, such as branch prediction and speculative execution, which are not critical to the correctness of their operation yet are essential towards improving performance. Accordingly, while faults in the corresponding hardware may not necessarily affect functional correctness, they may, nevertheless, adversely impact performance. In this paper, we investigate quantitatively the performance impact of such faults using a superscalar, dynamically-scheduled, out-of-order, Alpha-like microprocessor, on which we execute SPEC2000 integer benchmarks. We provide extensive fault simulation-based experimental results that elucidate the various aspects of performance faults and we discuss how this information may guide the inclusion of additional hardware for performance loss recovery and yield enhancement.
Similar content being viewed by others
Notes
The instruction cache stores four 32-bit instructions per line, aligned to 16 bytes. However, the first instruction to be fetched in each cycle may not be aligned on a 16-byte boundary. Thus, to guarantee delivery of 4 instructions, two cache lines need to be accessed.
While our performance impact analysis is performed at the RT-Level, we note that a recent study reveals a very strong correlation between the impact of RT-Level and Gate-Level faults on the execution of workload in the IVM processor [25]; hence, we expect that the obtained results are representative of what would be obtained through gate-level fault simulation.
The definitions of architectural state and architectural state corruption used herein are borrowed from [20], where it is stated that “In IVM, Microarchitectural state consists of all the SRAM cells, latches, and flip-flops used to implement a processor microarchitecture. Architectural state is a subset of microarchitectural state defined as the state of the machine that is exposed at the instruction set architecture level (e.g., the program counter, register files, and memory state). So Architectural state corruption is any change in PC, register files, and memory state.”
References
Jouppi NP (1990) Improving direct-mapped cache performance by the addition of a small fully-associative cache and prefetch buffers. In: International symposium on computer architecture, pp 364–373
Kroft D (1981) Lookup-free instruction fetch/prefetch cache organization. In: International symposium on computer architecture, pp 81–87
McFarling S (1993) Combining branch predictors, Tech. Rep. TR TN-36
Sprangle E, Chappell R, Alsup Ms, Patt Y (1997) The agree predictor: a mechanism for reducing negative branch history interference. In: International symposium on computer architecture, pp 284–291
Wang K, Franklin M (1997) Highly accurate data value prediction using hybrid predictors. In: International symposium on microarchitecture, pp 281–290
Yeh TY, Patt YN (1992) Alternative implementations of two-level adaptive branch prediction. In: International symposium on computer architecture, pp 124–134
Loh GH (2006) Revisiting the performance impact of branch predictor latencies. In: International symposium on performance analysis of systems and software. IEEE Computer Society, Los Alamitos, pp 59–69
Hao E, Chang PY, Patt YN (1994) The effect of speculatively updating branch history on branch prediction accuracy, revisited. In: International symposium on microarchitecture, pp 228–232
Jimenez DA (2002) Delay-sensitive branch predictors for future technologies, Ph.D. thesis, University Texas at Austin
Almukhaizim S, Verdel T, Makris Y (2003) Cost-effective graceful degradation in speculative processor subsystems: the branch prediction case. In: International conference on computer design. IEEE Computer Society, Los Alamitos, pp 194–197
Almukhaizim S, Petrov P, Orailoglu A (2001) Low-cost, software-based self-test methodologies for performance faults in processor control subsystems. In: Custom integrated circuits conference, pp 263–266
Almukhaizim S, Petrov P, Orailoglu A (2001) Faults in processor control subsystems: testing correctness and performance faults in the data prefetching unit. In: Asian test symposium. IEEE Computer Society, Los Alamitos, pp 319–324
Gizopoulos D, Paschalis A, Zorian Y (2004) Embedded processor-based self-test. Kluwer
Hatzimihail M, Psarakis M, Gizopoulos D, Paschalis A (2007) A methodology for detecting performance faults in microprocessors via performance monitoring hardware. In: International test conference, pp 1–10
Sanchez E, Reorda MS, Tonda (2011) On the functional test of branch prediction units based on branch history table. In: International conference on VLSI and system-on-chip, pp 278–283
Bernardi P, Ciganda L, Grosso M, Sanchez E, Sonza Reorda M (2012) A SBST strategy to test microprocessors’ branch target buffer. In: International symposium on design and diagnostics of electronic circuits & systems, pp 306–311
Sato T (1998) First step to combining control and data speculation. In: International workshop on innovative architecture, pp 53–60
Gonzalez J, Gonzalez A (1998) The potential of data value speculation to boost ILP. In: International conference on supercomputing, pp 21–28
Karimi N, Maniatakos M, Makris Y, Jas A (2008) On the correlation between controller faults and instruction-level errors in modern microprocessors. In: International test conference, pp 24.1.1–24.1.10
Wang NJ, Quek J, Rafacz TM, Patel SJ (2004) Characterizing the effects of transient faults on a high-performance processor pipeline. In: International conference on dependable systems and networks, pp 61–70
Wang NJ, Mahesri A, Patel SJ (2007) Examining ACE analysis reliability estimates using fault-injection. SIGARCH Comput Archit News 35(2):460–469
Burger D, Austin TM, Bennett S (1996) Evaluating future microprocessors: the simplescalar tool set, Tech. Rep CS-TR-1996-1308
Hennessy JL, Patterson DA (2003) Computer architecture: a quantitative approach, 3rd edn. Morgan Kaufmann, San Francisco, CA
Wang NJ, Patel SJ (2005) Restore: symptom based soft error detection in microprocessors. In: International conference on dependable systems and networks, pp 30–39
Maniatakos M, Karimi N, Tirumurti C, Jas A, Makris Y (2009) Instruction-level impact comparison of RT- vs. gate-level faults in a modern microprocessor controller. In: VLSI test symposium, pp 9–14
Baraza JC, Gracia J, Blanc S, Gil D, Gil PJ (2008) Enhancement of fault injection techniques based on the modification of VHDL code. IEEE Trans VLSI 16(6):693–706
Karimi N, Maniatakos M, Tirumurti C, Jas A, Makris Y (2009) Impact analysis of performance faults in modern microprocessors. In: International conference on computer design, pp 91–96
Acknowledgments
This work is supported by a generous gift from Intel Corp. The first author performed this research while being a visiting student at Yale University. A preliminary version of parts of the work reported herein was presented at the 2009 International Conference on Computer Design [27]. The authors would like to thank Prof. Sanjay Patel and Nicholas Wang from the University of Illinois at Urbana-Champaign for sharing the IVM microprocessor model and for providing technical assistance in its installation and usage.
Author information
Authors and Affiliations
Corresponding author
Additional information
Responsible Editor: M. Violante
Rights and permissions
About this article
Cite this article
Karimi, N., Maniatakos, M., Tirumurti, C.(. et al. On the Impact of Performance Faults in Modern Microprocessors. J Electron Test 29, 351–366 (2013). https://doi.org/10.1007/s10836-013-5360-5
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10836-013-5360-5