@inproceedings{71c5e3c9467546338c99953066462372,
title = "Dynamic optimization of micro-operations",
abstract = "Inherent within complex instruction set architectures such as ×86 are inefficiencies that do not exist in a simpler ISA. Modern ×86 implementations decode instructions into one or more micro-operations in order to deal with the complexity of the ISA. Since these micro-operations are not visible to the compiler the stream of micro-operations can contain redundancies even in statically optimized ×86 code. Within a processor implementation, however barriers at the ISA level do not apply, and these redundancies can be removed by optimizing the micro-operation stream. In this paper we explore the opportunities to optimize code at the micro-operation granularity. We execute these micro-operation optimizations using the rePLay Framework as a microarchitectural substrate. Using a simple set of seven optimizations, including two that aggressively and speculatively attempt to remove redundant load instructions, we examine the effects of dynamic optimization of micro-operations using a trace-driven simulation environment. Simulation reveals that across a sampling of SPECint 2000 and real ×86 applications, rePLay is able to reduce micro-operation count by 21\% and, in particular load micro-operation count by 22\%. These reductions correspond to a boost in observed instruction-level parallelism on an 8-wide optimizing rePLay processor by 17\% over a non-optimizing configuration.",
keywords = "Application software, Computer architecture, Decoding, Hardware, Instruction sets, Microarchitecture, Parallel processing, Performance evaluation, Redundancy, Registers",
author = "B. Slechta and D. Crowe and N. Fahs and M. Fertig and G. Muthler and J. Quek and F. Spadini and Patel, \{S. J.\} and Lumetta, \{S. S.\}",
note = "Publisher Copyright: {\textcopyright} 2003 IEEE.; 9th IEEE International Symposium on High-Performance Computer Architecture, HPCA 2003 ; Conference date: 08-02-2003 Through 12-02-2003",
year = "2003",
doi = "10.1109/HPCA.2003.1183535",
language = "English (US)",
series = "Proceedings - International Symposium on High-Performance Computer Architecture",
publisher = "IEEE Computer Society",
pages = "165--176",
booktitle = "Proceedings - 9th International Symposium on High-Performance Computer Architecture, HPCA 2003",
}